{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "VqqIZUfzD6GX"
      },
      "source": [
        "# Deduplication\n",
        "\n",
        "The best approach depends on your domain (don't assume that what everyone is doing to prep datasets for LLM pre-training is relevant for you).\n",
        "\n",
        "The examples below aren't aiming to be as efficient as possible but show what different approaches you can take at a high level and what they result in."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## Setup"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "oXGm2ILo_xx8",
        "outputId": "0ac96903-1a46-4c1a-9e5f-2344c19569ae"
      },
      "outputs": [],
      "source": [
        "%pip install datasets datasketch -qq"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## Load data"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "metadata": {},
      "outputs": [],
      "source": [
        "from datasets import load_dataset"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 342,
          "referenced_widgets": [
            "1b57c80b67c94bff9a1bdb351b1e62a5",
            "b966cd4309f44d18a17243a0eaec9e5f",
            "885ec10110454d8ca284f8dc2d23eb98",
            "8916b086d9b847e4bc291501fef4798b",
            "d6c1a24d0a0d45e0b6c63724a4912b82",
            "d226e2bd05304b269ca4fc33e28d2984",
            "48b078b82e8e46648bbca0c81f3c7bbe",
            "d46d7ebd6b834df7ab959a50baa1a1d3",
            "6ae7efc2e38c48abbe9962839a118ae2",
            "cb9a190141054b9aa1ca37e046e22b1b",
            "bcdb78b008f34038b852096949ff0f86",
            "5b4854c032f14710835c269a3c2ee01a",
            "f4f6b7d49f9b4b28b5147b4e05f8b684",
            "1604eca9a054468d9223c12d9c58e97c",
            "9464375b801c47a7bb89a9f2c19c75c7",
            "ee687fa7023a453d81f0dfc2bf30a330",
            "26c23fbe7e804e5ea8b149f5b01427ef",
            "49a1ee63461a4b7ab1da64af98919fab",
            "fdac3c75b7d64e7c90dada10e3d2f151",
            "f8de930d989343efb5dd5828907aba30",
            "dde644724f684e628e2994cf83ca23b3",
            "946f0b56e27c4f89aa9ff3f125178486",
            "22b29d9f95fc4537a72a2bb26164d032",
            "1ed2958bb12b477893be3f941f38474b",
            "09b22ddfc96748fbbfe58df4f32dba8c",
            "1d0c77377e8a43d9aa9e110e1b606a73",
            "c74b5561131840d68c3d9bb87522927a",
            "49299bf7926a4cc9b7f7e1f712bb3b32",
            "47e189e9772944eb90b674065a53b8e5",
            "f61fc93c180844c082ab520a38f67576",
            "4c09f1c7f37e4d998350b8ea3709b22b",
            "b74f1922c91f4410ba884402d26f168e",
            "31447c2314044d5aa20aba087ea836ed",
            "5aaed50c3b17479eb2b9db014a1299c2",
            "85e9404564b241e0933b2cd93bc4b70a",
            "5266a96363a345768a9c60348f55ba64",
            "c1d4a1ce3b1841b4afad35715df670d7",
            "5ab4bbbb428f4388b78c086dc521345b",
            "7560bdfa45d348f487a5d2fe0b890fc4",
            "5175cad8f676488a8af6cbc184e7653a",
            "caf6686e525c4f5c95f5007db8066bc2",
            "e41c2847cd7942a0b5ce70f06d41917f",
            "f90d0bc8a3ad42e89e57a86396cdad81",
            "fd7395f55b564992a3d69637e9a300af",
            "4a794127bc5541df829c47ac3a3f76a1",
            "9a5064b397b247459be56b85548985b9",
            "22d39eb4c9364ecf99137f5a038ea798",
            "6780a7d344d94769a3646808c5820f18",
            "8efe3ed02cf849828a4aa1cef1ee36f2",
            "0f380f19a66547e68028782905553aaa",
            "6b94612a9c6642e69cdd76b0419ee422",
            "a0d4b68c2b3546dea3273f1a35efe680",
            "4683991f78424827a89cd97dfc4787b2",
            "679cff893cd94b72a090d50b3765af1d",
            "3cd31dae5cfd4e18b6bb8d16c37b6a2f"
          ]
        },
        "id": "C31AIf0kUQZi",
        "outputId": "a1693d01-257c-4f78-a0a1-e2a0aae71904"
      },
      "outputs": [
        {
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "bfad2d58652443468cffa7d733166e8c",
              "version_major": 2,
              "version_minor": 0
            },
            "text/plain": [
              "Downloading readme:   0%|          | 0.00/8.07k [00:00<?, ?B/s]"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "acb6ab97d510445a8a0168bd0ce01f78",
              "version_major": 2,
              "version_minor": 0
            },
            "text/plain": [
              "Downloading data:   0%|          | 0.00/18.6M [00:00<?, ?B/s]"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "da3a7dbe0b944d43a1c6a70f1c36e68c",
              "version_major": 2,
              "version_minor": 0
            },
            "text/plain": [
              "Downloading data:   0%|          | 0.00/1.23M [00:00<?, ?B/s]"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "7c962738f54446b2bd3b7cf6ff300e02",
              "version_major": 2,
              "version_minor": 0
            },
            "text/plain": [
              "Generating train split:   0%|          | 0/120000 [00:00<?, ? examples/s]"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "b9f47d5bf7654edd9e2d6ff1e7802c36",
              "version_major": 2,
              "version_minor": 0
            },
            "text/plain": [
              "Generating test split:   0%|          | 0/7600 [00:00<?, ? examples/s]"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "text/plain": [
              "Dataset({\n",
              "    features: ['text', 'label'],\n",
              "    num_rows: 120000\n",
              "})"
            ]
          },
          "execution_count": 6,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "ag_dataset = load_dataset(\"ag_news\", split=\"train\")\n",
        "ag_dataset"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "R4ZLWUN9UQZi"
      },
      "source": [
        "## Approach 0: Use metadata and features to deduplicate or stratify your data\n",
        "\n",
        "Your data may already come with metadata (dates, categories, internal IDs...). For some tasks, you may want to keep all the data but for others, you may want to deduplicate it or stratify it based on the metadata. In particular if you know that the data you have collected for training doesn't match well the target distribution, you may want to oversample some categories or undersample others."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "JxNrv0NVUQZj"
      },
      "source": [
        "If we look at the AG News dataset, we can see we have labels. These might not be what we're using in our downstream task but they can be useful to stratify the data."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "PFwqkfhUUQZj",
        "outputId": "0b9ae7a4-17b8-4336-9f9c-4395d56f377a"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "{'text': \"Wall St. Bears Claw Back Into the Black (Reuters) Reuters - Short-sellers, Wall Street's dwindling\\\\band of ultra-cynics, are seeing green again.\",\n",
              " 'label': 2}"
            ]
          },
          "execution_count": 4,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "ag_dataset[0]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "DEMgJb7KUQZj",
        "outputId": "83d6fae6-2db0-48fa-e604-04016b2db88e"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "['World', 'Sports', 'Business', 'Sci/Tech']"
            ]
          },
          "execution_count": 5,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "ag_dataset.features['label'].names"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 424
        },
        "id": "t1J9Pz4XUQZj",
        "outputId": "624b3c5e-8230-4585-df0d-ba66a0b1e8e3"
      },
      "outputs": [
        {
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "ag_df"
            },
            "text/html": [
              "\n",
              "  <div id=\"df-6339af64-9d7d-4614-845a-10adfe2ae20a\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>text</th>\n",
              "      <th>label</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>Wall St. Bears Claw Back Into the Black (Reute...</td>\n",
              "      <td>2</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>Carlyle Looks Toward Commercial Aerospace (Reu...</td>\n",
              "      <td>2</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>Oil and Economy Cloud Stocks' Outlook (Reuters...</td>\n",
              "      <td>2</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>Iraq Halts Oil Exports from Main Southern Pipe...</td>\n",
              "      <td>2</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>Oil prices soar to all-time record, posing new...</td>\n",
              "      <td>2</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>...</th>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>119995</th>\n",
              "      <td>Pakistan's Musharraf Says Won't Quit as Army C...</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>119996</th>\n",
              "      <td>Renteria signing a top-shelf deal Red Sox gene...</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>119997</th>\n",
              "      <td>Saban not going to Dolphins yet The Miami Dolp...</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>119998</th>\n",
              "      <td>Today's NFL games PITTSBURGH at NY GIANTS Time...</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>119999</th>\n",
              "      <td>Nets get Carter from Raptors INDIANAPOLIS -- A...</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>120000 rows × 2 columns</p>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-6339af64-9d7d-4614-845a-10adfe2ae20a')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-6339af64-9d7d-4614-845a-10adfe2ae20a button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-6339af64-9d7d-4614-845a-10adfe2ae20a');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-3e8448b4-a16e-44ff-ab2f-90e361a89bcf\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-3e8448b4-a16e-44ff-ab2f-90e361a89bcf')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-3e8448b4-a16e-44ff-ab2f-90e361a89bcf button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "text/plain": [
              "                                                     text  label\n",
              "0       Wall St. Bears Claw Back Into the Black (Reute...      2\n",
              "1       Carlyle Looks Toward Commercial Aerospace (Reu...      2\n",
              "2       Oil and Economy Cloud Stocks' Outlook (Reuters...      2\n",
              "3       Iraq Halts Oil Exports from Main Southern Pipe...      2\n",
              "4       Oil prices soar to all-time record, posing new...      2\n",
              "...                                                   ...    ...\n",
              "119995  Pakistan's Musharraf Says Won't Quit as Army C...      0\n",
              "119996  Renteria signing a top-shelf deal Red Sox gene...      1\n",
              "119997  Saban not going to Dolphins yet The Miami Dolp...      1\n",
              "119998  Today's NFL games PITTSBURGH at NY GIANTS Time...      1\n",
              "119999  Nets get Carter from Raptors INDIANAPOLIS -- A...      1\n",
              "\n",
              "[120000 rows x 2 columns]"
            ]
          },
          "execution_count": 6,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "ag_df =  ag_dataset.to_pandas()\n",
        "ag_df"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "D_n_7k79U1a1",
        "outputId": "19b5a7ac-d616-4241-a20e-dd2cc79a4d5f"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "label\n",
              "2    0.25\n",
              "3    0.25\n",
              "1    0.25\n",
              "0    0.25\n",
              "Name: proportion, dtype: float64"
            ]
          },
          "execution_count": 9,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "ag_df['label'].value_counts(normalize=True)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "We1oU0wxU-xt"
      },
      "source": [
        "In this case the categories of news are evently distributed but we may have already decided that we'll use a different model for working with business news so we can remove most or all of that data from our dataset. So, let us now load another more complex dataset and see how we can deduplicate it.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 397,
          "referenced_widgets": [
            "7be9030c35324cf1828bb68f74e08646",
            "9ee8ba0e646e44338efdf30b1d778c96",
            "24a4e4d941a649908f7a364bfcec8813",
            "ec68e94aeee2494ebb6ad22b10727641",
            "7b01c8eb93cb47ff848d331103581cb1",
            "2fa1f5114ee44d45bf0f9bb23e5784cc",
            "851459ca207143b1b85fa8ad39f944b3",
            "95cadc78caed4e5382336278bdcd3add",
            "28bdca0fc31b4580b90054c9588bffb4",
            "0eaee47c4f4648af9d28cae9ad05c08a",
            "1c79078a38f4464fad772a0d61045499",
            "693a9814cbbe4b859be0ae8b0922b61a",
            "710a6789bd3e409485c2e260e111be07",
            "9880f29d8b4340d1abb5388efeafbab4",
            "390cf4f4d6814fa1bf3d782a217776de",
            "10d6548158c34976ad3a073eaa45e313",
            "a5a23a29b0fc4fdcadb745fae45f3a6d",
            "26203fd418474bf3b84045a94cb009f1",
            "d6e8d459080f4206bcad31a6d4b81f0c",
            "056afd00bd57489184a46bd8ff6a5492",
            "06ca0c7316f944059f587b69884c8755",
            "ee1ee8d4484e4fd4af21d18d218b7bda",
            "10a40c39be134d999547fb46e2323369",
            "d5de8ffded7640bca29a2cbc698933eb",
            "ac5159fcdd894a23990739bf49f87f14",
            "58557a52527b414780a2d7215134c8cd",
            "2078cc5c47594c9abe858e3d28810a01",
            "12404c45f9a245eab875159c2ee7faf1",
            "fb3c4043f3aa44ac88ec962b23e51a83",
            "3bb05bf4b95445e09b607030101b3256",
            "036d429e59034c618730cceb21b350d7",
            "606f732992a54428b31e55c0d5060850",
            "3c92ce43cd674bd489e1521ffa9429f3",
            "00c9f6a4ab564650a1eedcb21fd07973",
            "1f6a731751f6458b849a114946ab3c5b",
            "652984b44da146e8916a7c16a2753145",
            "6f550686573e4ac2bb26fa97e286eeb1",
            "e99e791a88f844b3a44478dcc8382ea5",
            "1c30e0413a834a719611873cedbd69a7",
            "25e5bbd8d8fb4a6e9350fb66d5c8d897",
            "04894734503b4bbf938fa78994682d05",
            "2837bca50ab54ddb83b9de69e649acb8",
            "24ad34844fc046758c5b7fc1d64b506b",
            "35d93cde461c40168e9a9e69a922a557",
            "44778eeba6a74e72916f5be84e83c138",
            "07cfd010933b493d813bd301ff110602",
            "52e8c84b3c8b4898b8dc16fc64be8982",
            "154375f3720c4c738eb63df2d866babb",
            "0a28856a08b5495495bb986077f1a80c",
            "0e60c16ed79f46a5b91791483ead781d",
            "8a613a12e02e46e1b7b77193b99bd0ab",
            "e92110caa68b417cbcf13590d23fb7de",
            "a147011ce029477f8223838837cd5ccd",
            "3b1db75916984a78b7996d2d961d918d",
            "871e23eda3fe412194bd179918d109f0"
          ]
        },
        "id": "OS3sfLN3UQZk",
        "outputId": "f0583eb6-f4d3-435f-ed3c-879e151564fe"
      },
      "outputs": [
        {
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "fda02ac937dd4287805e728f8f85b6d7",
              "version_major": 2,
              "version_minor": 0
            },
            "text/plain": [
              "Downloading readme:   0%|          | 0.00/8.18k [00:00<?, ?B/s]"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "097d4d0e9744470391bc0f6319c4d70c",
              "version_major": 2,
              "version_minor": 0
            },
            "text/plain": [
              "Downloading data:   0%|          | 0.00/32.4M [00:00<?, ?B/s]"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "66f63e02c02240cda4c460116b301380",
              "version_major": 2,
              "version_minor": 0
            },
            "text/plain": [
              "Downloading data:   0%|          | 0.00/1.90M [00:00<?, ?B/s]"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "17fe7f9d7a644086aea2574eeeabe18e",
              "version_major": 2,
              "version_minor": 0
            },
            "text/plain": [
              "Generating train split:   0%|          | 0/100000 [00:00<?, ? examples/s]"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "96511234705344aa8e6c3d35b3b9d8ba",
              "version_major": 2,
              "version_minor": 0
            },
            "text/plain": [
              "Generating test split:   0%|          | 0/5851 [00:00<?, ? examples/s]"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "text/plain": [
              "{'id': 5097,\n",
              " 'domain': 'forestry',\n",
              " 'domain_description': 'Comprehensive data on sustainable forest management, timber production, wildlife habitat, and carbon sequestration in forestry.',\n",
              " 'sql_complexity': 'single join',\n",
              " 'sql_complexity_description': 'only one join (specify inner, outer, cross)',\n",
              " 'sql_task_type': 'analytics and reporting',\n",
              " 'sql_task_type_description': 'generating reports, dashboards, and analytical insights',\n",
              " 'sql_prompt': 'What is the total volume of timber sold by each salesperson, sorted by salesperson?',\n",
              " 'sql_context': \"CREATE TABLE salesperson (salesperson_id INT, name TEXT, region TEXT); INSERT INTO salesperson (salesperson_id, name, region) VALUES (1, 'John Doe', 'North'), (2, 'Jane Smith', 'South'); CREATE TABLE timber_sales (sales_id INT, salesperson_id INT, volume REAL, sale_date DATE); INSERT INTO timber_sales (sales_id, salesperson_id, volume, sale_date) VALUES (1, 1, 120, '2021-01-01'), (2, 1, 150, '2021-02-01'), (3, 2, 180, '2021-01-01');\",\n",
              " 'sql': 'SELECT salesperson_id, name, SUM(volume) as total_volume FROM timber_sales JOIN salesperson ON timber_sales.salesperson_id = salesperson.salesperson_id GROUP BY salesperson_id, name ORDER BY total_volume DESC;',\n",
              " 'sql_explanation': 'Joins timber_sales and salesperson tables, groups sales by salesperson, calculates total volume sold by each salesperson, and orders the results by total volume in descending order.'}"
            ]
          },
          "execution_count": 7,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "sql_dataset = load_dataset(\"gretelai/synthetic_text_to_sql\", split=\"train\")\n",
        "sql_dataset[0]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 12,
      "metadata": {
        "id": "SxShzK1aUQZk"
      },
      "outputs": [],
      "source": [
        "sql_df = sql_dataset.to_pandas()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 13,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 597
        },
        "id": "Jg6e4TT4YvE1",
        "outputId": "4666277c-adc9-4ca4-f8f5-bef264093245"
      },
      "outputs": [
        {
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "summary": "{\n  \"name\": \"sql_df\",\n  \"rows\": 100000,\n  \"fields\": [\n    {\n      \"column\": \"id\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 100000,\n        \"samples\": [\n          80888,\n          83323,\n          7831\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"domain\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 100,\n        \"samples\": [\n          \"climate change\",\n          \"rare earth elements\",\n          \"fitness industry\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"domain_description\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 100,\n        \"samples\": [\n          \"Climate change data on climate mitigation, climate adaptation, climate finance, and climate communication.\",\n          \"Rare earth element production data, market trends, environmental impact stats, and supply chain transparency.\",\n          \"Workout data, membership demographics, wearable technology metrics, and wellness trends.\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql_complexity\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 8,\n        \"samples\": [\n          \"aggregation\",\n          \"multiple_joins\",\n          \"single join\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql_complexity_description\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 8,\n        \"samples\": [\n          \"aggregation functions (COUNT, SUM, AVG, MIN, MAX, etc.), and HAVING clause\",\n          \"two or more joins (specify inner, outer, cross)\",\n          \"only one join (specify inner, outer, cross)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql_task_type\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"data manipulation\",\n          \"data retrieval\",\n          \"analytics and reporting\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql_task_type_description\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"inserting, updating, or deleting records\",\n          \"basic data fetching queries\",\n          \"generating reports, dashboards, and analytical insights\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql_prompt\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 100000,\n        \"samples\": [\n          \"Show all transactions that were made on a holiday.\",\n          \"Find the top 3 countries by total donations.\",\n          \"List policy types and their corresponding average claim amounts for policyholders aged 60 and above.\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql_context\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 89766,\n        \"samples\": [\n          \"CREATE TABLE user_activity (user_id INT, post_date DATE);\",\n          \"CREATE TABLE production (element VARCHAR(10), year INT, quantity INT); INSERT INTO production (element, year, quantity) VALUES ('Neodymium', 2015, 12000), ('Neodymium', 2016, 15000), ('Praseodymium', 2015, 7000), ('Praseodymium', 2016, 8000);\",\n          \"CREATE TABLE projects (id INT, name TEXT, region TEXT, success BOOLEAN, type TEXT); INSERT INTO projects (id, name, region, success, type) VALUES (1, 'Project 1', 'Sub-Saharan Africa', TRUE, 'sustainable agricultural'), (2, 'Project 2', 'Sub-Saharan Africa', FALSE, 'agricultural'), (3, 'Project 3', 'Sub-Saharan Africa', TRUE, 'sustainable agricultural');\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 99271,\n        \"samples\": [\n          \"SELECT s.name, SUM(sales.amount) as total_sales FROM salesperson s JOIN sales ON s.id = sales.salesperson_id GROUP BY s.id, s.name;\",\n          \"SELECT Genre, GameName, SUM(Revenue) as TotalRevenue FROM GameRevenue GROUP BY Genre, GameName;\",\n          \"SELECT YEAR(call_date) AS year, COUNT(*) FROM emergency_calls GROUP BY year;\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql_explanation\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 99777,\n        \"samples\": [\n          \"This SQL query counts the number of community development projects carried out by each organization in Africa in 2017. It uses the WHERE clause to filter rows based on the region and start date. The YEAR function extracts the year from the start_date column. The GROUP BY clause groups the rows by organization and the COUNT function calculates the number of rows for each group.\",\n          \"This query calculates the total sales for each salesperson by joining the salesperson, tickets, and events tables on their respective IDs. It then filters for the latest event date and calculates the sales by summing the product of ticket price, quantity, and commission rate (5%). It groups the result by salesperson name.\",\n          \"This query combines data from the community_health_workers and cultural_competency_training tables using a FULL OUTER JOIN on the state column. It then calculates the total number of community health workers and the number of workers who have received cultural competency training for each state using the SUM and GROUP BY statements.\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}",
              "type": "dataframe",
              "variable_name": "sql_df"
            },
            "text/html": [
              "\n",
              "  <div id=\"df-f5eff3ad-e031-46fc-8e5f-e163f4727877\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>id</th>\n",
              "      <th>domain</th>\n",
              "      <th>domain_description</th>\n",
              "      <th>sql_complexity</th>\n",
              "      <th>sql_complexity_description</th>\n",
              "      <th>sql_task_type</th>\n",
              "      <th>sql_task_type_description</th>\n",
              "      <th>sql_prompt</th>\n",
              "      <th>sql_context</th>\n",
              "      <th>sql</th>\n",
              "      <th>sql_explanation</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>5097</td>\n",
              "      <td>forestry</td>\n",
              "      <td>Comprehensive data on sustainable forest manag...</td>\n",
              "      <td>single join</td>\n",
              "      <td>only one join (specify inner, outer, cross)</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>What is the total volume of timber sold by eac...</td>\n",
              "      <td>CREATE TABLE salesperson (salesperson_id INT, ...</td>\n",
              "      <td>SELECT salesperson_id, name, SUM(volume) as to...</td>\n",
              "      <td>Joins timber_sales and salesperson tables, gro...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>5098</td>\n",
              "      <td>defense industry</td>\n",
              "      <td>Defense contract data, military equipment main...</td>\n",
              "      <td>aggregation</td>\n",
              "      <td>aggregation functions (COUNT, SUM, AVG, MIN, M...</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>List all the unique equipment types and their ...</td>\n",
              "      <td>CREATE TABLE equipment_maintenance (equipment_...</td>\n",
              "      <td>SELECT equipment_type, SUM(maintenance_frequen...</td>\n",
              "      <td>This query groups the equipment_maintenance ta...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>5099</td>\n",
              "      <td>marine biology</td>\n",
              "      <td>Comprehensive data on marine species, oceanogr...</td>\n",
              "      <td>basic SQL</td>\n",
              "      <td>basic SQL with a simple select statement</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>How many marine species are found in the South...</td>\n",
              "      <td>CREATE TABLE marine_species (name VARCHAR(50),...</td>\n",
              "      <td>SELECT COUNT(*) FROM marine_species WHERE loca...</td>\n",
              "      <td>This query counts the number of marine species...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>5100</td>\n",
              "      <td>financial services</td>\n",
              "      <td>Detailed financial data including investment s...</td>\n",
              "      <td>aggregation</td>\n",
              "      <td>aggregation functions (COUNT, SUM, AVG, MIN, M...</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>What is the total trade value and average pric...</td>\n",
              "      <td>CREATE TABLE trade_history (id INT, trader_id ...</td>\n",
              "      <td>SELECT trader_id, stock, SUM(price * quantity)...</td>\n",
              "      <td>This query calculates the total trade value an...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>5101</td>\n",
              "      <td>energy</td>\n",
              "      <td>Energy market data covering renewable energy s...</td>\n",
              "      <td>window functions</td>\n",
              "      <td>window functions (e.g., ROW_NUMBER, LEAD, LAG,...</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>Find the energy efficiency upgrades with the h...</td>\n",
              "      <td>CREATE TABLE upgrades (id INT, cost FLOAT, typ...</td>\n",
              "      <td>SELECT type, cost FROM (SELECT type, cost, ROW...</td>\n",
              "      <td>The SQL query uses the ROW_NUMBER function to ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>...</th>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>99995</th>\n",
              "      <td>89651</td>\n",
              "      <td>nonprofit</td>\n",
              "      <td>Nonprofit data on charitable giving trends, so...</td>\n",
              "      <td>basic SQL</td>\n",
              "      <td>basic SQL with a simple select statement</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>Which programs had the highest volunteer parti...</td>\n",
              "      <td>CREATE TABLE programs (program_id INT, num_vol...</td>\n",
              "      <td>SELECT program_id, (num_volunteers / total_par...</td>\n",
              "      <td>This query calculates the participation rate f...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>99996</th>\n",
              "      <td>89652</td>\n",
              "      <td>retail</td>\n",
              "      <td>Retail data on circular supply chains, ethical...</td>\n",
              "      <td>single join</td>\n",
              "      <td>only one join (specify inner, outer, cross)</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>What is the number of fair-trade certified acc...</td>\n",
              "      <td>CREATE TABLE products (product_id INT, product...</td>\n",
              "      <td>SELECT COUNT(*) FROM products WHERE is_fair_tr...</td>\n",
              "      <td>The query counts the number of fair-trade cert...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>99997</th>\n",
              "      <td>89653</td>\n",
              "      <td>fitness industry</td>\n",
              "      <td>Workout data, membership demographics, wearabl...</td>\n",
              "      <td>single join</td>\n",
              "      <td>only one join (specify inner, outer, cross)</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>Find the user with the longest workout session...</td>\n",
              "      <td>CREATE TABLE workout_sessions (id INT, user_id...</td>\n",
              "      <td>SELECT u.name, MAX(session_duration) as max_du...</td>\n",
              "      <td>The query joins the workout_sessions and users...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>99998</th>\n",
              "      <td>89654</td>\n",
              "      <td>space exploration</td>\n",
              "      <td>Spacecraft manufacturing data, space mission r...</td>\n",
              "      <td>single join</td>\n",
              "      <td>only one join (specify inner, outer, cross)</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>How many space missions were completed by each...</td>\n",
              "      <td>CREATE TABLE SpaceMissions (id INT, astronaut_...</td>\n",
              "      <td>SELECT a.name, COUNT(sm.id) FROM Astronauts a ...</td>\n",
              "      <td>This query calculates the number of space miss...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>99999</th>\n",
              "      <td>89655</td>\n",
              "      <td>wildlife conservation</td>\n",
              "      <td>Animal population data, habitat preservation e...</td>\n",
              "      <td>basic SQL</td>\n",
              "      <td>basic SQL with a simple select statement</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>Determine the number of unique animal species ...</td>\n",
              "      <td>CREATE TABLE animal_population (id INT, animal...</td>\n",
              "      <td>SELECT COUNT(DISTINCT animal_species) AS uniqu...</td>\n",
              "      <td>This query calculates the number of unique ani...</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>100000 rows × 11 columns</p>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-f5eff3ad-e031-46fc-8e5f-e163f4727877')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-f5eff3ad-e031-46fc-8e5f-e163f4727877 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-f5eff3ad-e031-46fc-8e5f-e163f4727877');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-a7464e59-922f-420b-9149-9b8f73105e6f\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-a7464e59-922f-420b-9149-9b8f73105e6f')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-a7464e59-922f-420b-9149-9b8f73105e6f button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "text/plain": [
              "          id                 domain  \\\n",
              "0       5097               forestry   \n",
              "1       5098       defense industry   \n",
              "2       5099         marine biology   \n",
              "3       5100     financial services   \n",
              "4       5101                 energy   \n",
              "...      ...                    ...   \n",
              "99995  89651              nonprofit   \n",
              "99996  89652                 retail   \n",
              "99997  89653       fitness industry   \n",
              "99998  89654      space exploration   \n",
              "99999  89655  wildlife conservation   \n",
              "\n",
              "                                      domain_description    sql_complexity  \\\n",
              "0      Comprehensive data on sustainable forest manag...       single join   \n",
              "1      Defense contract data, military equipment main...       aggregation   \n",
              "2      Comprehensive data on marine species, oceanogr...         basic SQL   \n",
              "3      Detailed financial data including investment s...       aggregation   \n",
              "4      Energy market data covering renewable energy s...  window functions   \n",
              "...                                                  ...               ...   \n",
              "99995  Nonprofit data on charitable giving trends, so...         basic SQL   \n",
              "99996  Retail data on circular supply chains, ethical...       single join   \n",
              "99997  Workout data, membership demographics, wearabl...       single join   \n",
              "99998  Spacecraft manufacturing data, space mission r...       single join   \n",
              "99999  Animal population data, habitat preservation e...         basic SQL   \n",
              "\n",
              "                              sql_complexity_description  \\\n",
              "0            only one join (specify inner, outer, cross)   \n",
              "1      aggregation functions (COUNT, SUM, AVG, MIN, M...   \n",
              "2               basic SQL with a simple select statement   \n",
              "3      aggregation functions (COUNT, SUM, AVG, MIN, M...   \n",
              "4      window functions (e.g., ROW_NUMBER, LEAD, LAG,...   \n",
              "...                                                  ...   \n",
              "99995           basic SQL with a simple select statement   \n",
              "99996        only one join (specify inner, outer, cross)   \n",
              "99997        only one join (specify inner, outer, cross)   \n",
              "99998        only one join (specify inner, outer, cross)   \n",
              "99999           basic SQL with a simple select statement   \n",
              "\n",
              "                 sql_task_type  \\\n",
              "0      analytics and reporting   \n",
              "1      analytics and reporting   \n",
              "2      analytics and reporting   \n",
              "3      analytics and reporting   \n",
              "4      analytics and reporting   \n",
              "...                        ...   \n",
              "99995  analytics and reporting   \n",
              "99996  analytics and reporting   \n",
              "99997  analytics and reporting   \n",
              "99998  analytics and reporting   \n",
              "99999  analytics and reporting   \n",
              "\n",
              "                               sql_task_type_description  \\\n",
              "0      generating reports, dashboards, and analytical...   \n",
              "1      generating reports, dashboards, and analytical...   \n",
              "2      generating reports, dashboards, and analytical...   \n",
              "3      generating reports, dashboards, and analytical...   \n",
              "4      generating reports, dashboards, and analytical...   \n",
              "...                                                  ...   \n",
              "99995  generating reports, dashboards, and analytical...   \n",
              "99996  generating reports, dashboards, and analytical...   \n",
              "99997  generating reports, dashboards, and analytical...   \n",
              "99998  generating reports, dashboards, and analytical...   \n",
              "99999  generating reports, dashboards, and analytical...   \n",
              "\n",
              "                                              sql_prompt  \\\n",
              "0      What is the total volume of timber sold by eac...   \n",
              "1      List all the unique equipment types and their ...   \n",
              "2      How many marine species are found in the South...   \n",
              "3      What is the total trade value and average pric...   \n",
              "4      Find the energy efficiency upgrades with the h...   \n",
              "...                                                  ...   \n",
              "99995  Which programs had the highest volunteer parti...   \n",
              "99996  What is the number of fair-trade certified acc...   \n",
              "99997  Find the user with the longest workout session...   \n",
              "99998  How many space missions were completed by each...   \n",
              "99999  Determine the number of unique animal species ...   \n",
              "\n",
              "                                             sql_context  \\\n",
              "0      CREATE TABLE salesperson (salesperson_id INT, ...   \n",
              "1      CREATE TABLE equipment_maintenance (equipment_...   \n",
              "2      CREATE TABLE marine_species (name VARCHAR(50),...   \n",
              "3      CREATE TABLE trade_history (id INT, trader_id ...   \n",
              "4      CREATE TABLE upgrades (id INT, cost FLOAT, typ...   \n",
              "...                                                  ...   \n",
              "99995  CREATE TABLE programs (program_id INT, num_vol...   \n",
              "99996  CREATE TABLE products (product_id INT, product...   \n",
              "99997  CREATE TABLE workout_sessions (id INT, user_id...   \n",
              "99998  CREATE TABLE SpaceMissions (id INT, astronaut_...   \n",
              "99999  CREATE TABLE animal_population (id INT, animal...   \n",
              "\n",
              "                                                     sql  \\\n",
              "0      SELECT salesperson_id, name, SUM(volume) as to...   \n",
              "1      SELECT equipment_type, SUM(maintenance_frequen...   \n",
              "2      SELECT COUNT(*) FROM marine_species WHERE loca...   \n",
              "3      SELECT trader_id, stock, SUM(price * quantity)...   \n",
              "4      SELECT type, cost FROM (SELECT type, cost, ROW...   \n",
              "...                                                  ...   \n",
              "99995  SELECT program_id, (num_volunteers / total_par...   \n",
              "99996  SELECT COUNT(*) FROM products WHERE is_fair_tr...   \n",
              "99997  SELECT u.name, MAX(session_duration) as max_du...   \n",
              "99998  SELECT a.name, COUNT(sm.id) FROM Astronauts a ...   \n",
              "99999  SELECT COUNT(DISTINCT animal_species) AS uniqu...   \n",
              "\n",
              "                                         sql_explanation  \n",
              "0      Joins timber_sales and salesperson tables, gro...  \n",
              "1      This query groups the equipment_maintenance ta...  \n",
              "2      This query counts the number of marine species...  \n",
              "3      This query calculates the total trade value an...  \n",
              "4      The SQL query uses the ROW_NUMBER function to ...  \n",
              "...                                                  ...  \n",
              "99995  This query calculates the participation rate f...  \n",
              "99996  The query counts the number of fair-trade cert...  \n",
              "99997  The query joins the workout_sessions and users...  \n",
              "99998  This query calculates the number of space miss...  \n",
              "99999  This query calculates the number of unique ani...  \n",
              "\n",
              "[100000 rows x 11 columns]"
            ]
          },
          "execution_count": 13,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "sql_df"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Aaik1F4oY0eZ"
      },
      "source": [
        "The recommended plots in google Colab can be quite helpful for lazily visualizing some features of your dataset. A simple suggested bar plot can show you the distribution of your data."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 15,
      "metadata": {
        "cellView": "form",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 430
        },
        "id": "fXY6SrsdY7pP",
        "outputId": "880150f2-ae4f-49e3-8a19-4f4e8683a9b1"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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htq2bZsSEhJUsGBBVa5c2Rz8Nm/efNdZU0kqWLCgxXeTyaSsrKw8rTEkJERFihTR5s2bLcLp5s2btXPnTl27ds0863qvHBwcZBiGRdut93DedLf9e5gPh92tDg8PD+3Zs0fffPONSpYsqVGjRiksLEwXL17MNo6zs7M8PT0tPgAAALeyaTi9ed/phx9+aA6iN8NpTEzMfc1IVqhQQQULFlRcXJy57cKFCxavowoODtb169ct+vz5559KSkpSlSpVJN0IYvXq1dPy5ct18OBBPf300woNDVVGRoY+/fRT1axZ02Lm8V74+PhY3H+amZmpAwcO5GqM0NBQxcfH6/z58zkud3JyMj9sdifBwcFKSEjQ5cuXzW2xsbFycHCwmGH+JwUKFFCTJk00efJk7du3TydOnNDGjRvveX0AAICbbBpOCxcurNDQUC1cuNAcROvXr689e/boyJEj/zhzejfu7u569dVXNXToUG3cuFEHDhxQt27d5ODw/3Y5MDBQL7zwgnr27Gmewf3Xv/6l0qVL64UXXjD3a9iwob755htVr15d7u7ucnBwUP369bVw4UKramzUqJFWrVqlVatW6fDhw3rzzTdznGm8m06dOsnX11dt2rRRbGysfv31V33//ffavn27pBu3PBw/flzx8fH6448/lJGRkW2Mzp07y8XFRV27dtWBAwe0adMm9evXT6+88or5ftN/snLlSs2YMUPx8fE6efKkvvjiC2VlZeUq3AIAANxk85fwN2jQQJmZmeZwWqRIEVWpUkW+vr73HXA++OAD1atXT61bt1aTJk309NNP64knnrDoM3/+fD3xxBN67rnnVLduXRmGodWrV1tcyr69RulGYL297V716NFDXbt2VZcuXdSgQQOVL19ezzzzTK7GcHJy0vr161W8eHG1atVKISEheu+998z3hr744otq0aKFnnnmGfn4+Oibb77JNoabm5vWrVun8+fPq1atWnrppZfUuHFjzZo1657r8Pb21pIlS9SoUSMFBwfrk08+0TfffKOqVavman8AAAAkyWTcfvMj8JCkpaXJy8tLuzuZ5O5k+x8oqBR199sgAADAg2fzmVMAAADgJsIpAAAA7AbhFAAAAHaDcAoAAAC7wQNRsJmbD0SlpqbyQn4AACCJmVMAAADYEcIpAAAA7AbhFAAAAHaDcAoAAAC7QTgFAACA3SCc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1KhRozRhwgQlJiZq4sSJevfdd7VgwQJJ0o4dOyRJP/74o1JSUrRkyZIct3P69Gm1atVKtWrVUkJCgubMmaPPP/9c48ePt+i3YMECFShQQDt27NBHH32kadOmad68eeblffv21fbt27Vo0SLt27dP7du3V4sWLXT06FFznytXruj999/XvHnzdPDgQRUvXlyXLl1S165dtW3bNv38888KDAxUq1atdOnSJUnSzp07JUnz589XSkqK+fvtPvroI02dOlVTpkzRvn371Lx5cz3//PMW25ekESNGaMiQIYqPj1elSpXUqVMncxDv06ePMjIytGXLFu3fv1/vv//+HWdnMzIylJaWZvEBAACwYFghMzPTGDt2rFGqVCnD0dHROHbsmGEYhjFy5Ehj3rx51gyZJ3bv3m1IMk6cOJHj8goVKhhff/21Rdu4ceOMunXrGoZhGMePHzckGXv37r3rdv79738bQUFBRlZWlrlt9uzZhru7u5GZmWkYhmE0aNDACA4OtugzbNgwIzg42DAMwzh58qTh6OhonD592mLsxo0bG8OHDzcMwzDmz59vSDLi4+PvWk9mZqbh4eFh/PDDD+Y2ScbSpUst+o0ePdoICwszfy9VqpQxYcIEiz61atUyevfubRjG/zset57TgwcPGpKMxMREwzAMIyQkxBgzZsxd67t1+5KyfbrNK2O8/nXZf/wAAIDHn1Uzp+PHj1dUVJQmT54sJycnc3u1atUsZgYftrCwMDVu3FghISFq37695s6dqwsXLkiSLl++rGPHjunVV18133vp7u6u8ePH69ixY7naTmJiourWrSuTyWRui4iIUHp6un777Tdz25NPPmnRp27dujp69KgyMzO1f/9+ZWZmqlKlShb1bN682aIeJycnhYaGWmz/7Nmz6tmzpwIDA+Xl5SVPT0+lp6crOTn5nvchLS1N//vf/xQREWHRHhERocTERIu2W7dfsmRJSdK5c+ckSf3799f48eMVERGh0aNHa9++fXfc5vDhw5Wammr+nDp16p7rBQAA+YNVD0R98cUX+uyzz9S4cWP16tXL3B4WFqbDhw/nWXG55ejoqA0bNuinn37S+vXrNXPmTI0YMUJxcXFyc3OTJM2dO1d16tTJtt7Dlp6eLkdHR+3evTvb9m+9LO7q6moRcCWpa9eu+vPPP/XRRx/J399fzs7Oqlu37gO737dgwYLmf9+sJSsrS5L02muvqXnz5lq1apXWr1+vSZMmaerUqerXr1+2cZydneXs7PxAagQAAI8Hq2ZOT58+rYoVK2Zrz8rK0rVr1+67qPthMpkUERGhyMhI7d27V05OTlq6dKlKlCihUqVK6ddff1XFihUtPjcfhLo5C5yZmXnXbQQHB2v79u0WDzfFxsbKw8NDZcqUMbfFxcVZrHfz/lBHR0eFh4crMzNT586dy1aPr6/vXbcfGxur/v37q1WrVqpataqcnZ31xx9/WPQpWLDgXffD09NTpUqVUmxsbLaxq1Spctft387Pz0+9evXSkiVLNHjwYM2dOzdX6wMAANxk1cxplSpVtHXrVvn7+1u0L168WOHh4XlSmDXi4uIUHR2tZs2aqXjx4oqLi9Pvv/+u4OBgSVJkZKT69+8vLy8vtWjRQhkZGdq1a5cuXLigQYMGqXjx4nJ1ddXatWtVpkwZubi4yMvLK9t2evfurenTp6tfv37q27evkpKSNHr0aA0aNMjiNU/JyckaNGiQ3njjDe3Zs0czZ87U1KlTJUmVKlVS586d1aVLF02dOlXh4eH6/fffFR0drdDQUD377LN33M/AwEB9+eWXqlmzptLS0jR06FC5urpa9AkICFB0dLQiIiLk7OyswoULZxtn6NChGj16tCpUqKDq1atr/vz5io+P18KFC+/5mA8cOFAtW7ZUpUqVdOHCBW3atMl8vAEAAHLLqnA6atQode3aVadPn1ZWVpaWLFmipKQkffHFF1q5cmVe13jPPD09tWXLFk2fPl1paWny9/fX1KlT1bJlS0k3LkG7ubnpgw8+0NChQ1WoUCGFhIRo4MCBkqQCBQpoxowZGjt2rEaNGqV69epZvNrpptKlS2v16tUaOnSowsLCVKRIEb366qsaOXKkRb8uXbro6tWrql27thwdHTVgwAC9/vrr5uXz58/X+PHjNXjwYJ0+fVrFihXTk08+qeeee+6u+/n555/r9ddfV40aNeTn56eJEydqyJAhFn2mTp2qQYMGae7cuSpdurROnDiRbZz+/fsrNTVVgwcP1rlz51SlShWtWLFCgYGB93C0b8jMzDT/Wpinp6datGihDz/88J7XBwAAuJXJuPXadC5s3bpVY8eOVUJCgtLT01WjRg2NGjVKzZo1y+saH0kNGzZU9erVNX36dFuXYrfS0tLk5eWlbvPKyMntn+8w+bTTyYdQFQAAsCWrZk4lqV69ejZ9pykAAAAeP9b9DiYAAADwANzzzGnhwoWzvdLoTs6fP291QY+LnO5VBQAAwN3dczjl3kkAAAA8aPccTrt27fog6wAAAACsf1o/MzNTS5cuNf/UZZUqVfTCCy+oQAGrn7FCPnPzaf3U1FR5enrauhwAAGAHrAqnBw8e1PPPP68zZ84oKChIknTkyBH5+Pjohx9+ULVq1fK8UDx+CKcAAOB2VoXTunXrysfHRwsWLDD/8tCFCxfUrVs3/f777/rpp5/yvFA8fginAADgdlaFU1dXV+3atUtVq1a1aD9w4IBq1aqlq1ev5lmBeHwRTgEAwO2ses9ppUqVdPbs2Wzt586dU8WKFe+7KAAAAORPVoXTSZMmqX///lq8eLF+++03/fbbb1q8eLEGDhyo999/X2lpaeYPAAAAcK+suqzv4PD/Mu3NF/PfHObW7yaTSZmZmXlRJx5DXNYHAAC3s+q9T5s2bcrrOgAAAADr33MK3C9mTgEAwO2sfmP+X3/9pX379uncuXPKysqyWPb888/fd2EAAADIf6wKp2vXrlWXLl30xx9/ZFvGfaYAAACwllVP6/fr10/t27dXSkqKsrKyLD4EUwAAAFjLqntOPT09tXfvXlWoUOFB1IR8gntOAQDA7ayaOX3ppZcUExOTx6UAAAAgv7Nq5vTKlStq3769fHx8FBISooIFC1os79+/f54ViMcXM6cAAOB2VoXTzz//XL169ZKLi4uKFi1qfvG+dOOBqF9//TVPi8TjiXAKAABuZ1U49fX1Vf/+/fXOO+9Y/FoUkBuEUwAAcDurkuXff/+tjh07EkwBAACQp6xKl127dtW3336b17UAAAAgn7PqJfyZmZmaPHmy1q1bp9DQ0GwPRE2bNi1PigMAAED+YlU43b9/v8LDwyVJBw4csFh268NRAAAAQG5Y9UAUkBd4IAoAANzuvp9o+u233/Tbb7/lRS0AAADI56y6rJ+VlaXx48dr6tSpSk9PlyR5eHho8ODBGjFiBE/xI1fO1vpIVxxdHtr2fA8NfWjbAgAAuWNVOB0xYoQ+//xzvffee4qIiJAkbdu2TWPGjNFff/2lCRMm5GmRAAAAyB+sCqcLFizQvHnz9Pzzz5vbQkNDVbp0afXu3ZtwCgAAAKtYdf39/Pnzqly5crb2ypUr6/z58/ddFAAAAPInq8JpWFiYZs2ala191qxZCgsLu++iAAAAkD9ZdVl/8uTJevbZZ/Xjjz+qbt26kqTt27fr1KlTWr16dZ4WCAAAgPzDqpnTBg0aKCkpSW3bttXFixd18eJFtWvXTklJSapXr15e1wgAAIB8wup3PpUuXVoTJkzQ999/r++//17jx49XqVKl8rI2uzVmzBhVr179rn1OnDghk8mk+Pj4ex43KipK3t7e91XbrQICAjR9+vR77n8v+wUAAPAgWXVZf/78+XJ3d1f79u0t2r/77jtduXJFXbt2zZPiHhXdunXTxYsXtWzZMnObn5+fUlJSVKxYMZvVtXPnThUqVOie+w8ZMkT9+vV7gBUBAADcnVUzp5MmTcoxdBUvXlwTJ06876IeB46OjvL19VWBAlbl/zzh4+MjNze3e+7v7u6uokWLPsCKAAAA7s6qcJqcnKxy5cpla/f391dycvJ9F5WXGjZsqH79+mngwIEqXLiwSpQooblz5+ry5cvq3r27PDw8VLFiRa1Zs0ZSzpfWly1bJpPJlOP4Y8aM0YIFC7R8+XKZTCaZTCbFxMRku6wfExMjk8mkVatWKTQ0VC4uLnryySd14MCBu9a/fPly1ahRQy4uLipfvrwiIyN1/fr1e9r32y/rJycn64UXXpC7u7s8PT3VoUMHnT171mJfbr2s361bN7Vp00ZTpkxRyZIlVbRoUfXp00fXrl0z9/n4448VGBgoFxcXlShRQi+99NI91QYAAJATq8Jp8eLFtW/fvmztCQkJdjnztmDBAhUrVkw7duxQv3799Oabb6p9+/Z66qmntGfPHjVr1kyvvPKKrly5kuuxhwwZog4dOqhFixZKSUlRSkqKnnrqqTv2Hzp0qKZOnaqdO3fKx8dHrVu3tgh7t9q6dau6dOmiAQMG6NChQ/r0008VFRVl1Y8cZGVl6YUXXtD58+e1efNmbdiwQb/++qs6dux41/U2bdqkY8eOadOmTVqwYIGioqIUFRUlSdq1a5f69++vsWPHKikpSWvXrlX9+vXvOFZGRobS0tIsPgAAALeyKpx26tRJ/fv316ZNm5SZmanMzExt3LhRAwYM0Msvv5zXNd63sLAwjRw5UoGBgRo+fLhcXFxUrFgx9ezZU4GBgRo1apT+/PPPHAP3P3F3d5erq6ucnZ3l6+srX19fOTk53bH/6NGj1bRpU4WEhGjBggU6e/asli5dmmPfyMhIvfPOO+ratavKly+vpk2baty4cfr0009zXWd0dLT279+vr7/+Wk888YTq1KmjL774Qps3b9bOnTvvuF7hwoU1a9YsVa5cWc8995yeffZZRUdHS7oxE1uoUCE999xz8vf3V3h4uPr373/HsSZNmiQvLy/zx8/PL9f7AQAAHm9WhdNx48apTp06aty4sVxdXeXq6qpmzZqpUaNGdnnPaWhoqPnfjo6OKlq0qEJCQsxtJUqUkCSdO3fugddy872wklSkSBEFBQUpMTExx74JCQkaO3as3N3dzZ+ePXsqJSUl17O8iYmJ8vPzswiEVapUkbe39x23L0lVq1aVo6Oj+XvJkiXNx6lp06by9/dX+fLl9corr2jhwoV3rWv48OFKTU01f06dOpWrfQAAAI8/q57WcXJy0rfffqvx48crPj5erq6uCgkJkb+/f17XlycKFixo8d1kMlm03byfNCsrSw4ODjIMw6L/nS67P2jp6emKjIxUu3btsi1zcXF5KDXkdOyysrIkSR4eHtqzZ49iYmK0fv16jRo1SmPGjNHOnTtzfCWWs7OznJ2dH0bZAADgEXVfj5IHBgYqMDDwjss9PT0VHx+v8uXL389mHiofHx9dunRJly9fNr+G6Z/eVerk5KTMzMx7Gv/nn39W2bJlJUkXLlzQkSNHFBwcnGPfGjVqKCkpSRUrVrz3HbiD4OBgnTp1SqdOnTLPnh46dEgXL15UlSpVrB63QIECatKkiZo0aaLRo0fL29tbGzduzDFQAwAA/JMH+p6j22cgHwV16tSRm5ub/v3vf6t///6Ki4szPwB0JwEBAVq3bp2SkpJUtGhReXl53bHv2LFjVbRoUZUoUUIjRoxQsWLF1KZNmxz7jho1Ss8995zKli2rl156SQ4ODkpISNCBAwc0fvz4XO1XkyZNFBISos6dO2v69Om6fv26evfurQYNGqhmzZq5GuumlStX6tdff1X9+vVVuHBhrV69WllZWQoKCrJqPAAAAKt/IepxVaRIEX311VdavXq1QkJC9M0332jMmDF3Xadnz54KCgpSzZo15ePjo9jY2Dv2fe+99zRgwAA98cQTOnPmjH744Yc7PkDVvHlzrVy5UuvXr1etWrX05JNP6sMPP7Tq9gmTyaTly5ercOHCql+/vpo0aaLy5cvr22+/zfVYN3l7e2vJkiVq1KiRgoOD9cknn+ibb75R1apVrR4TAADkbybjAU5venh4KCEh4ZG6rP+gxMTE6JlnntGFCxfy9CdK76ZkyZIaN26cXnvttYeyvdxKS0uTl5eXjlQaKw/Hh3MPrST5Hhr60LYFAAByx3Y/X4QH5sqVK4qNjdXZs2eZxQQAAI+UBxpO7/SrSrh/Cxcu1BtvvJHjMsMw5OLiooEDB1q8ugoAAMDe8UDUQ9KwYcM8PR7PP/+86tSpk+OyggUL2u1rvQAAAO7mgYbTNWvWqHTp0g9yE/mWh4eHPDw8bF0GAABAnrrnB6IGDRp0z4NOmzbN6oKQf9x8ICo1NVWenp62LgcAANiBe5453bt37z314z5TAAAAWOuBvkoKuBtmTgEAwO14CT8AAADshlUPRLVt2/aeL98vWbLEmk0AAAAgH7Jq5tTLy0vR0dHatWuXuW337t3auHGjPD095eXlZf4AAAAA98qqmdMSJUqoQ4cO+uSTT+To6ChJyszMVO/eveXp6akPPvggT4sEAABA/mDVA1E+Pj7atm2bgoKCLNqTkpL01FNP6c8//8yzAvH44oEoAABwO6su61+/fl2HDx/O1n748GFlZWXdd1EAAADIn6y6rN+9e3e9+uqrOnbsmGrXri1JiouL06RJk9S9e/c8LRAAAAD5h1XhdMqUKfL19dXUqVOVkpIiSSpVqpTefvttDR48OE8LBAAAQP5h1T2nV69elWEYcnNzU1pamk6cOKHo6GhVqVJFzZs3fxB14jHEPacAAOB2Vt1z+sILL+iLL76QJGVlZalZs2aaNm2a2rRpozlz5uRpgQAAAMg/rAqne/bsUb169SRJixcvVokSJXTy5El98cUXmjFjRp4WCAAAgPzDqnB65coVeXh4SJLWr1+vdu3aycHBQU8++aROnjyZpwUCAAAg/7AqnFasWFHLli3TqVOntG7dOjVr1kySdO7cOe4dBAAAgNWsCqejRo3SkCFDFBAQoDp16qhu3bqSbsyihoeH52mBAAAAyD+selpfks6cOaOUlBSFhYXJweFGxt2xY4c8PT1VuXLlPC0Sjyee1gcAALezOpwC94twCgAAbmfVZX0AAADgQSCcAgAAwG4QTgEAAGA3CKcAAACwGwVsXQDw7jtr5ezsZusyAAB4rEz+8Dlbl2AVZk4BAABgNwinAAAAsBuEUwAAANgNwikAAADsBuEUAAAAdoNwCgAAALtBOM1jDRs21MCBAx/Y+CdOnJDJZFJ8fPwD2wYAAICtEE4fMX5+fkpJSVG1atWsHmPp0qV68skn5eXlJQ8PD1WtWjVboL569apGjx6tSpUqydnZWcWKFVP79u118OBBi35jxoxR9erVra4FAADgVoTTR4yjo6N8fX1VoIB1v58QHR2tjh076sUXX9SOHTu0e/duTZgwQdeuXTP3ycjIUJMmTfSf//xH48eP15EjR7R69Wpdv35dderU0c8//5xXuwMAAGCBcPoAXL9+XX379pWXl5eKFSumd999V4ZhmJd/+eWXqlmzpjw8POTr66v/+7//07lz58zLL1y4oM6dO8vHx0eurq4KDAzU/PnzJeV8Wf/gwYN67rnn5OnpKQ8PD9WrV0/Hjh3LsbYffvhBERERGjp0qIKCglSpUiW1adNGs2fPNveZPn26tm/frpUrV6pDhw7y9/dX7dq19f333ys4OFivvvqqxf4AAADkFcLpA7BgwQIVKFBAO3bs0EcffaRp06Zp3rx55uXXrl3TuHHjlJCQoGXLlunEiRPq1q2befm7776rQ4cOac2aNUpMTNScOXNUrFixHLd1+vRp1a9fX87Oztq4caN2796tHj166Pr16zn29/X11cGDB3XgwIE71v/111+radOmCgsLs2h3cHDQW2+9pUOHDikhISEXR+SGjIwMpaWlWXwAAABuZd21YdyVn5+fPvzwQ5lMJgUFBWn//v368MMP1bNnT0lSjx49zH3Lly+vGTNmqFatWkpPT5e7u7uSk5MVHh6umjVrSpICAgLuuK3Zs2fLy8tLixYtUsGCBSVJlSpVumP/fv36aevWrQoJCZG/v7+efPJJNWvWTJ07d5azs7Mk6ciRI3rmmWdyXD84ONjcJ7f3mk6aNEmRkZG5WgcAAOQvzJw+AE8++aRMJpP5e926dXX06FFlZmZKknbv3q3WrVurbNmy8vDwUIMGDSRJycnJkqQ333xTixYtUvXq1fX222/rp59+uuO24uPjVa9ePXMw/SeFChXSqlWr9Msvv2jkyJFyd3fX4MGDVbt2bV25csXc758u2zs5Od3T9m41fPhwpaammj+nTp3K9RgAAODxRjh9yC5fvqzmzZvL09NTCxcu1M6dO7V06VJJ0t9//y1JatmypU6ePKm33npL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",
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "# @title sql_complexity\n",
        "\n",
        "from matplotlib import pyplot as plt\n",
        "import seaborn as sns\n",
        "\n",
        "sql_df.groupby('sql_complexity').size().plot(kind='barh', color=sns.palettes.mpl_palette('Dark2'))\n",
        "plt.gca().spines[['top', 'right',]].set_visible(False)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "GB3mzriAZYYS"
      },
      "source": [
        "### Adding your own features\n",
        "\n",
        "For both raw and fine-tuning data, you may want to add your own featurs to get a better understanding of what's going on in your data and whether there are outliers you want to be concerend about. \n",
        "\n",
        "#### Too many tokens?\n",
        "\n",
        "String/token length can be a particuarly relevant one since a string that goes beyond the context length of models you want to fine-tune will need some different treatment. Additionally, longer token data for instruction tuning or alignment might result in a too chatty model.\n",
        "\n",
        "#### Textual Complexity\n",
        "\n",
        "You may also want to add a feature for text complexity. This could be a simple measure of the number of unique tokens in a sentencence or something more complex like a readability score. Adding this feature can help you understand if your model is struggling with certain types of text.\n",
        "\n",
        "#### The application layer\n",
        "\n",
        "You may already begin to identify things that will be important for the application layer. For example for a natural language to SQL use case we may decide based on the distribution of string/token counts to set some cut offs for what a user can pass in (for example rejecting sql_contexs which are above a certain size)."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 23,
      "metadata": {
        "id": "6nsiw6FuZEU2"
      },
      "outputs": [],
      "source": [
        "sql_df['sql_length'] = sql_df['sql'].str.len()\n",
        "sql_df['sql_context_length'] = sql_df['sql_context'].str.len()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 24,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 702
        },
        "id": "sJvIxNeoZOwQ",
        "outputId": "782b6d3c-1394-47bd-dfaa-ea50fe167653"
      },
      "outputs": [
        {
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "summary": "{\n  \"name\": \"sql_df\",\n  \"rows\": 100000,\n  \"fields\": [\n    {\n      \"column\": \"id\",\n      \"properties\": {\n        \"dtype\": \"int32\",\n        \"num_unique_values\": 100000,\n        \"samples\": [\n          80888,\n          83323,\n          7831\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"domain\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 100,\n        \"samples\": [\n          \"climate change\",\n          \"rare earth elements\",\n          \"fitness industry\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"domain_description\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 100,\n        \"samples\": [\n          \"Climate change data on climate mitigation, climate adaptation, climate finance, and climate communication.\",\n          \"Rare earth element production data, market trends, environmental impact stats, and supply chain transparency.\",\n          \"Workout data, membership demographics, wearable technology metrics, and wellness trends.\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql_complexity\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 8,\n        \"samples\": [\n          \"aggregation\",\n          \"multiple_joins\",\n          \"single join\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql_complexity_description\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 8,\n        \"samples\": [\n          \"aggregation functions (COUNT, SUM, AVG, MIN, MAX, etc.), and HAVING clause\",\n          \"two or more joins (specify inner, outer, cross)\",\n          \"only one join (specify inner, outer, cross)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql_task_type\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"data manipulation\",\n          \"data retrieval\",\n          \"analytics and reporting\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql_task_type_description\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"inserting, updating, or deleting records\",\n          \"basic data fetching queries\",\n          \"generating reports, dashboards, and analytical insights\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql_prompt\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 100000,\n        \"samples\": [\n          \"Show all transactions that were made on a holiday.\",\n          \"Find the top 3 countries by total donations.\",\n          \"List policy types and their corresponding average claim amounts for policyholders aged 60 and above.\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql_context\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 89766,\n        \"samples\": [\n          \"CREATE TABLE user_activity (user_id INT, post_date DATE);\",\n          \"CREATE TABLE production (element VARCHAR(10), year INT, quantity INT); INSERT INTO production (element, year, quantity) VALUES ('Neodymium', 2015, 12000), ('Neodymium', 2016, 15000), ('Praseodymium', 2015, 7000), ('Praseodymium', 2016, 8000);\",\n          \"CREATE TABLE projects (id INT, name TEXT, region TEXT, success BOOLEAN, type TEXT); INSERT INTO projects (id, name, region, success, type) VALUES (1, 'Project 1', 'Sub-Saharan Africa', TRUE, 'sustainable agricultural'), (2, 'Project 2', 'Sub-Saharan Africa', FALSE, 'agricultural'), (3, 'Project 3', 'Sub-Saharan Africa', TRUE, 'sustainable agricultural');\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 99271,\n        \"samples\": [\n          \"SELECT s.name, SUM(sales.amount) as total_sales FROM salesperson s JOIN sales ON s.id = sales.salesperson_id GROUP BY s.id, s.name;\",\n          \"SELECT Genre, GameName, SUM(Revenue) as TotalRevenue FROM GameRevenue GROUP BY Genre, GameName;\",\n          \"SELECT YEAR(call_date) AS year, COUNT(*) FROM emergency_calls GROUP BY year;\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql_explanation\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 99777,\n        \"samples\": [\n          \"This SQL query counts the number of community development projects carried out by each organization in Africa in 2017. It uses the WHERE clause to filter rows based on the region and start date. The YEAR function extracts the year from the start_date column. The GROUP BY clause groups the rows by organization and the COUNT function calculates the number of rows for each group.\",\n          \"This query calculates the total sales for each salesperson by joining the salesperson, tickets, and events tables on their respective IDs. It then filters for the latest event date and calculates the sales by summing the product of ticket price, quantity, and commission rate (5%). It groups the result by salesperson name.\",\n          \"This query combines data from the community_health_workers and cultural_competency_training tables using a FULL OUTER JOIN on the state column. It then calculates the total number of community health workers and the number of workers who have received cultural competency training for each state using the SUM and GROUP BY statements.\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql_length\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 67,\n        \"min\": 16,\n        \"max\": 761,\n        \"num_unique_values\": 568,\n        \"samples\": [\n          355,\n          67,\n          262\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"sql_context_length\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 144,\n        \"min\": 11,\n        \"max\": 2046,\n        \"num_unique_values\": 1026,\n        \"samples\": [\n          690,\n          785,\n          750\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}",
              "type": "dataframe",
              "variable_name": "sql_df"
            },
            "text/html": [
              "\n",
              "  <div id=\"df-a1159722-5a46-414b-9ce0-8cde4237277b\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>id</th>\n",
              "      <th>domain</th>\n",
              "      <th>domain_description</th>\n",
              "      <th>sql_complexity</th>\n",
              "      <th>sql_complexity_description</th>\n",
              "      <th>sql_task_type</th>\n",
              "      <th>sql_task_type_description</th>\n",
              "      <th>sql_prompt</th>\n",
              "      <th>sql_context</th>\n",
              "      <th>sql</th>\n",
              "      <th>sql_explanation</th>\n",
              "      <th>sql_length</th>\n",
              "      <th>sql_context_length</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>5097</td>\n",
              "      <td>forestry</td>\n",
              "      <td>Comprehensive data on sustainable forest manag...</td>\n",
              "      <td>single join</td>\n",
              "      <td>only one join (specify inner, outer, cross)</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>What is the total volume of timber sold by eac...</td>\n",
              "      <td>CREATE TABLE salesperson (salesperson_id INT, ...</td>\n",
              "      <td>SELECT salesperson_id, name, SUM(volume) as to...</td>\n",
              "      <td>Joins timber_sales and salesperson tables, gro...</td>\n",
              "      <td>209</td>\n",
              "      <td>436</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>5098</td>\n",
              "      <td>defense industry</td>\n",
              "      <td>Defense contract data, military equipment main...</td>\n",
              "      <td>aggregation</td>\n",
              "      <td>aggregation functions (COUNT, SUM, AVG, MIN, M...</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>List all the unique equipment types and their ...</td>\n",
              "      <td>CREATE TABLE equipment_maintenance (equipment_...</td>\n",
              "      <td>SELECT equipment_type, SUM(maintenance_frequen...</td>\n",
              "      <td>This query groups the equipment_maintenance ta...</td>\n",
              "      <td>132</td>\n",
              "      <td>92</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>5099</td>\n",
              "      <td>marine biology</td>\n",
              "      <td>Comprehensive data on marine species, oceanogr...</td>\n",
              "      <td>basic SQL</td>\n",
              "      <td>basic SQL with a simple select statement</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>How many marine species are found in the South...</td>\n",
              "      <td>CREATE TABLE marine_species (name VARCHAR(50),...</td>\n",
              "      <td>SELECT COUNT(*) FROM marine_species WHERE loca...</td>\n",
              "      <td>This query counts the number of marine species...</td>\n",
              "      <td>70</td>\n",
              "      <td>94</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>5100</td>\n",
              "      <td>financial services</td>\n",
              "      <td>Detailed financial data including investment s...</td>\n",
              "      <td>aggregation</td>\n",
              "      <td>aggregation functions (COUNT, SUM, AVG, MIN, M...</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>What is the total trade value and average pric...</td>\n",
              "      <td>CREATE TABLE trade_history (id INT, trader_id ...</td>\n",
              "      <td>SELECT trader_id, stock, SUM(price * quantity)...</td>\n",
              "      <td>This query calculates the total trade value an...</td>\n",
              "      <td>138</td>\n",
              "      <td>127</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>5101</td>\n",
              "      <td>energy</td>\n",
              "      <td>Energy market data covering renewable energy s...</td>\n",
              "      <td>window functions</td>\n",
              "      <td>window functions (e.g., ROW_NUMBER, LEAD, LAG,...</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>Find the energy efficiency upgrades with the h...</td>\n",
              "      <td>CREATE TABLE upgrades (id INT, cost FLOAT, typ...</td>\n",
              "      <td>SELECT type, cost FROM (SELECT type, cost, ROW...</td>\n",
              "      <td>The SQL query uses the ROW_NUMBER function to ...</td>\n",
              "      <td>120</td>\n",
              "      <td>165</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>...</th>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>99995</th>\n",
              "      <td>89651</td>\n",
              "      <td>nonprofit</td>\n",
              "      <td>Nonprofit data on charitable giving trends, so...</td>\n",
              "      <td>basic SQL</td>\n",
              "      <td>basic SQL with a simple select statement</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>Which programs had the highest volunteer parti...</td>\n",
              "      <td>CREATE TABLE programs (program_id INT, num_vol...</td>\n",
              "      <td>SELECT program_id, (num_volunteers / total_par...</td>\n",
              "      <td>This query calculates the participation rate f...</td>\n",
              "      <td>132</td>\n",
              "      <td>203</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>99996</th>\n",
              "      <td>89652</td>\n",
              "      <td>retail</td>\n",
              "      <td>Retail data on circular supply chains, ethical...</td>\n",
              "      <td>single join</td>\n",
              "      <td>only one join (specify inner, outer, cross)</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>What is the number of fair-trade certified acc...</td>\n",
              "      <td>CREATE TABLE products (product_id INT, product...</td>\n",
              "      <td>SELECT COUNT(*) FROM products WHERE is_fair_tr...</td>\n",
              "      <td>The query counts the number of fair-trade cert...</td>\n",
              "      <td>150</td>\n",
              "      <td>362</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>99997</th>\n",
              "      <td>89653</td>\n",
              "      <td>fitness industry</td>\n",
              "      <td>Workout data, membership demographics, wearabl...</td>\n",
              "      <td>single join</td>\n",
              "      <td>only one join (specify inner, outer, cross)</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>Find the user with the longest workout session...</td>\n",
              "      <td>CREATE TABLE workout_sessions (id INT, user_id...</td>\n",
              "      <td>SELECT u.name, MAX(session_duration) as max_du...</td>\n",
              "      <td>The query joins the workout_sessions and users...</td>\n",
              "      <td>216</td>\n",
              "      <td>152</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>99998</th>\n",
              "      <td>89654</td>\n",
              "      <td>space exploration</td>\n",
              "      <td>Spacecraft manufacturing data, space mission r...</td>\n",
              "      <td>single join</td>\n",
              "      <td>only one join (specify inner, outer, cross)</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>How many space missions were completed by each...</td>\n",
              "      <td>CREATE TABLE SpaceMissions (id INT, astronaut_...</td>\n",
              "      <td>SELECT a.name, COUNT(sm.id) FROM Astronauts a ...</td>\n",
              "      <td>This query calculates the number of space miss...</td>\n",
              "      <td>119</td>\n",
              "      <td>132</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>99999</th>\n",
              "      <td>89655</td>\n",
              "      <td>wildlife conservation</td>\n",
              "      <td>Animal population data, habitat preservation e...</td>\n",
              "      <td>basic SQL</td>\n",
              "      <td>basic SQL with a simple select statement</td>\n",
              "      <td>analytics and reporting</td>\n",
              "      <td>generating reports, dashboards, and analytical...</td>\n",
              "      <td>Determine the number of unique animal species ...</td>\n",
              "      <td>CREATE TABLE animal_population (id INT, animal...</td>\n",
              "      <td>SELECT COUNT(DISTINCT animal_species) AS uniqu...</td>\n",
              "      <td>This query calculates the number of unique ani...</td>\n",
              "      <td>79</td>\n",
              "      <td>251</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>100000 rows × 13 columns</p>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-a1159722-5a46-414b-9ce0-8cde4237277b')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-a1159722-5a46-414b-9ce0-8cde4237277b button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-a1159722-5a46-414b-9ce0-8cde4237277b');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-8d6eb2a8-dab5-4cda-bc6c-1e44921b5d36\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-8d6eb2a8-dab5-4cda-bc6c-1e44921b5d36')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-8d6eb2a8-dab5-4cda-bc6c-1e44921b5d36 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "text/plain": [
              "          id                 domain  \\\n",
              "0       5097               forestry   \n",
              "1       5098       defense industry   \n",
              "2       5099         marine biology   \n",
              "3       5100     financial services   \n",
              "4       5101                 energy   \n",
              "...      ...                    ...   \n",
              "99995  89651              nonprofit   \n",
              "99996  89652                 retail   \n",
              "99997  89653       fitness industry   \n",
              "99998  89654      space exploration   \n",
              "99999  89655  wildlife conservation   \n",
              "\n",
              "                                      domain_description    sql_complexity  \\\n",
              "0      Comprehensive data on sustainable forest manag...       single join   \n",
              "1      Defense contract data, military equipment main...       aggregation   \n",
              "2      Comprehensive data on marine species, oceanogr...         basic SQL   \n",
              "3      Detailed financial data including investment s...       aggregation   \n",
              "4      Energy market data covering renewable energy s...  window functions   \n",
              "...                                                  ...               ...   \n",
              "99995  Nonprofit data on charitable giving trends, so...         basic SQL   \n",
              "99996  Retail data on circular supply chains, ethical...       single join   \n",
              "99997  Workout data, membership demographics, wearabl...       single join   \n",
              "99998  Spacecraft manufacturing data, space mission r...       single join   \n",
              "99999  Animal population data, habitat preservation e...         basic SQL   \n",
              "\n",
              "                              sql_complexity_description  \\\n",
              "0            only one join (specify inner, outer, cross)   \n",
              "1      aggregation functions (COUNT, SUM, AVG, MIN, M...   \n",
              "2               basic SQL with a simple select statement   \n",
              "3      aggregation functions (COUNT, SUM, AVG, MIN, M...   \n",
              "4      window functions (e.g., ROW_NUMBER, LEAD, LAG,...   \n",
              "...                                                  ...   \n",
              "99995           basic SQL with a simple select statement   \n",
              "99996        only one join (specify inner, outer, cross)   \n",
              "99997        only one join (specify inner, outer, cross)   \n",
              "99998        only one join (specify inner, outer, cross)   \n",
              "99999           basic SQL with a simple select statement   \n",
              "\n",
              "                 sql_task_type  \\\n",
              "0      analytics and reporting   \n",
              "1      analytics and reporting   \n",
              "2      analytics and reporting   \n",
              "3      analytics and reporting   \n",
              "4      analytics and reporting   \n",
              "...                        ...   \n",
              "99995  analytics and reporting   \n",
              "99996  analytics and reporting   \n",
              "99997  analytics and reporting   \n",
              "99998  analytics and reporting   \n",
              "99999  analytics and reporting   \n",
              "\n",
              "                               sql_task_type_description  \\\n",
              "0      generating reports, dashboards, and analytical...   \n",
              "1      generating reports, dashboards, and analytical...   \n",
              "2      generating reports, dashboards, and analytical...   \n",
              "3      generating reports, dashboards, and analytical...   \n",
              "4      generating reports, dashboards, and analytical...   \n",
              "...                                                  ...   \n",
              "99995  generating reports, dashboards, and analytical...   \n",
              "99996  generating reports, dashboards, and analytical...   \n",
              "99997  generating reports, dashboards, and analytical...   \n",
              "99998  generating reports, dashboards, and analytical...   \n",
              "99999  generating reports, dashboards, and analytical...   \n",
              "\n",
              "                                              sql_prompt  \\\n",
              "0      What is the total volume of timber sold by eac...   \n",
              "1      List all the unique equipment types and their ...   \n",
              "2      How many marine species are found in the South...   \n",
              "3      What is the total trade value and average pric...   \n",
              "4      Find the energy efficiency upgrades with the h...   \n",
              "...                                                  ...   \n",
              "99995  Which programs had the highest volunteer parti...   \n",
              "99996  What is the number of fair-trade certified acc...   \n",
              "99997  Find the user with the longest workout session...   \n",
              "99998  How many space missions were completed by each...   \n",
              "99999  Determine the number of unique animal species ...   \n",
              "\n",
              "                                             sql_context  \\\n",
              "0      CREATE TABLE salesperson (salesperson_id INT, ...   \n",
              "1      CREATE TABLE equipment_maintenance (equipment_...   \n",
              "2      CREATE TABLE marine_species (name VARCHAR(50),...   \n",
              "3      CREATE TABLE trade_history (id INT, trader_id ...   \n",
              "4      CREATE TABLE upgrades (id INT, cost FLOAT, typ...   \n",
              "...                                                  ...   \n",
              "99995  CREATE TABLE programs (program_id INT, num_vol...   \n",
              "99996  CREATE TABLE products (product_id INT, product...   \n",
              "99997  CREATE TABLE workout_sessions (id INT, user_id...   \n",
              "99998  CREATE TABLE SpaceMissions (id INT, astronaut_...   \n",
              "99999  CREATE TABLE animal_population (id INT, animal...   \n",
              "\n",
              "                                                     sql  \\\n",
              "0      SELECT salesperson_id, name, SUM(volume) as to...   \n",
              "1      SELECT equipment_type, SUM(maintenance_frequen...   \n",
              "2      SELECT COUNT(*) FROM marine_species WHERE loca...   \n",
              "3      SELECT trader_id, stock, SUM(price * quantity)...   \n",
              "4      SELECT type, cost FROM (SELECT type, cost, ROW...   \n",
              "...                                                  ...   \n",
              "99995  SELECT program_id, (num_volunteers / total_par...   \n",
              "99996  SELECT COUNT(*) FROM products WHERE is_fair_tr...   \n",
              "99997  SELECT u.name, MAX(session_duration) as max_du...   \n",
              "99998  SELECT a.name, COUNT(sm.id) FROM Astronauts a ...   \n",
              "99999  SELECT COUNT(DISTINCT animal_species) AS uniqu...   \n",
              "\n",
              "                                         sql_explanation  sql_length  \\\n",
              "0      Joins timber_sales and salesperson tables, gro...         209   \n",
              "1      This query groups the equipment_maintenance ta...         132   \n",
              "2      This query counts the number of marine species...          70   \n",
              "3      This query calculates the total trade value an...         138   \n",
              "4      The SQL query uses the ROW_NUMBER function to ...         120   \n",
              "...                                                  ...         ...   \n",
              "99995  This query calculates the participation rate f...         132   \n",
              "99996  The query counts the number of fair-trade cert...         150   \n",
              "99997  The query joins the workout_sessions and users...         216   \n",
              "99998  This query calculates the number of space miss...         119   \n",
              "99999  This query calculates the number of unique ani...          79   \n",
              "\n",
              "       sql_context_length  \n",
              "0                     436  \n",
              "1                      92  \n",
              "2                      94  \n",
              "3                     127  \n",
              "4                     165  \n",
              "...                   ...  \n",
              "99995                 203  \n",
              "99996                 362  \n",
              "99997                 152  \n",
              "99998                 132  \n",
              "99999                 251  \n",
              "\n",
              "[100000 rows x 13 columns]"
            ]
          },
          "execution_count": 24,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "sql_df"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 25,
      "metadata": {
        "cellView": "form",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 452
        },
        "id": "xflASCPYahi1",
        "outputId": "f1f6df2c-5ca0-4d5d-e837-e498d8e844ef"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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M0fx8fGKiIhQZGSk+vXrp+HDh6t58+bWP66tWrVye0316tXVvHnz6972oUOH1Lp1a1WrduWPoMOHDys8PFx16tRxG7/tttus5T/VuHHjUuuoW7euzpw5c9V+Dhw4IGNMqfmWqF69utvzIUOG6N1339WaNWv0+OOPq1evXlfdRnkdPHhQxhg9//zzev7558usOXHihG655Rbr+eXvRd26dSXJei9K3ruWLVu61dWrV8+qtet63negsiE0Ab9QDz74oLp166aVK1fqs88+09y5czV79mytWLHC062Vi6+vb5nj5rKTxstSXFwsh8OhtWvXlrme2rVruz0/deqUdu7cKenHS/KLi4vl43NjDtwXFxdLkp5++mnFxsaWWXN5+Lme9+Ja3cxtAZ5GaAJ+wRo2bKgnnnhCTzzxhE6cOKHOnTvrP/7jPzR37lxJPx6B6dmzp1V/8eJFZWVlqWPHjte13RYtWmj79u26ePFiqaM4JZo0aaINGzbo7Nmzbkeb9u/fby2/Vj/9yuryfowxatasmW699darrichIUFnz57VzJkzNXXqVM2bN0+JiYlX3U55lBzZq169umJiYipknSXv3cGDB9WsWTNr/NSpU6WOEFXkXIDKjnOagF+goqIi5efnu42FhIQoPDxcBQUF6tKlixo0aKDFixersLDQqklKSqqQG0MOGjRI3333nebPn19qWckRin79+qmoqKhUzauvviqHw6G+ffte83Zr1aolSaXmMHDgQPn6+mrGjBmljpAYY3Tq1Cnr+X//939r2bJlmjVrlqZMmaIhQ4boueee07/+9S+rpmbNmmVupzxCQkJ0zz336I033tCxY8dKLb/8VgJ29OrVS9WqVdOiRYvcxsvaH1d6z4BfIo40Ab9AZ8+eVaNGjfTAAw+oY8eOql27tjZs2KAvvvhCL7/8sqpXr66XXnpJf/jDH9SzZ08NHjxYWVlZWrp0aYWc0zR8+HC98847SkxM1I4dO9StWzedP39eGzZs0BNPPKH77rtP/fv3V48ePfTss88qOztbHTt21GeffaaPPvpI48ePdzvp267IyEhJ0rPPPqshQ4aoevXq6t+/v1q0aKGXXnpJU6dOVXZ2tgYMGKA6deooKytLK1eu1OOPP66nn35aJ06c0JgxY9SjRw+NHTtW0o9BY9OmTRoxYoS2bt0qHx8f+fv7q23btlq2bJluvfVW1atXT+3atVO7du3K9X4tWLBAd999t9q3b69Ro0apefPmOn78uFJTU3XkyBHt3r37mtYXGhqqcePG6eWXX9bvfvc79enTR7t379batWsVHBzsdnSpU6dO8vX11ezZs5Wfny8/Pz/17NlTISEh5ZoLUKl56rI9AJ5TUFBgJk2aZDp27Gjq1KljatWqZTp27GgWLlzoVrdw4ULTrFkz4+fnZ7p06WK2bNlifvOb31z3LQeMMeb77783zz77rGnWrJmpXr26CQsLMw888IA5dOiQVXP27FkzYcIEEx4ebqpXr25atWpl5s6d63Y5vTE/3nKgrNsnNGnSxO3yeWOMefHFF80tt9xifHx8St1+4G9/+5u5++67Ta1atUytWrVMmzZtTEJCgsnMzDTGGDNw4EBTp04dk52d7bbOjz76yEgys2fPtsa2bdtmIiMjjdPpvKbbD1zp/Tx06JAZPny4CQsLM9WrVze33HKLuffee81///d/WzUltxz44osv3F67adOmUrcNuHTpknn++edNWFiY8ff3Nz179jRff/21qV+/vhk9erTb6//f//t/pnnz5sbX19dtPU2aNDFxcXGl5nD5fyNAVeEwhrP1ANhXcjfwqvC7anCXl5enunXr6qWXXtKzzz7r6XYAr8M5TQDwC/TDDz+UGps3b54kVcjP5ABVEec0AagwhYWFOn369M/WBAYGyt/f/yZ15D287b1ZtmyZkpKS1K9fP9WuXVtbt27V+++/r969e+uuu+66KT0AlQ2hCUCF2bZtm3r06PGzNUuXLrV+EPaXxNvemw4dOqhatWqaM2eOXC6XdXL4Sy+9dFO2D1RGnNMEoMKcOXNGaWlpP1tz++23q2HDhjepI+/BewNUfoQmAAAAGzgRHAAAwAZCUwUxxsjlcvF7SwAAVFGEpgpy9uxZBQYG6uzZs55uBQAA3ACEJgAAABsITQAAADYQmgAAAGwgNAEAANhAaAIAALCB0AQAAGADoQkAAMAGQhMAAIANhCYAAAAbCE0AAAA2EJoAAABsIDQBAADYQGgCAACwgdAEAABgA6EJAADABkITAACADdU83QCqrqZT1tyQ9WbPirsh6wUA4OdwpAkAAMAGQhMAAIANhCYAAAAbCE0AAAA2EJoAAABsIDQBAADYQGgCAACwgdAEAABgA6EJAADABkITAACADYQmAAAA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J0/WmjVrlJGRYb1uyJAhysvL07p16yRJUVFRuuOOOzR//nxJUnFxsSIiIvTkk09qypQpV+3d5XIpMDBQ+fn5CggIuJ63ocpoOmXNDVlv9qy4G7JeAAB+jled05Sfny9Jqlevntv4f/3Xfyk4OFjt2rXT1KlT9f3331vLUlNT1b59eyswSVJsbKxcLpf27t1r1cTExLitMzY2VqmpqZKkwsJCpaWludX4+PgoJibGqrlcQUGBXC6X2wMAAFRd1TzdQIni4mKNHz9ed911l9q1a2eNP/TQQ2rSpInCw8O1Z88eTZ48WZmZmVqxYoUkKTc31y0wSbKe5+bm/myNy+XSDz/8oDNnzqioqKjMmv3795fZ78yZMzVjxozrmzQAAKg0vCY0JSQkKCMjQ1u3bnUbf/zxx60/t2/fXg0bNlSvXr106NAhtWjR4ma3aZk6daoSExOt5y6XSxERER7rBwAA3FheEZrGjh2r1atXa8uWLWrUqNHP1kZFRUmSDh48qBYtWigsLKzUVW7Hjx+XJIWFhVn/WzL205qAgAD5+/vL19dXvr6+ZdaUrONyfn5+8vPzsz9JAABQqXn0nCZjjMaOHauVK1dq48aNatas2VVfk56eLklq2LChJCk6OlpfffWV21Vu69evV0BAgNq2bWvVJCcnu61n/fr1io6OliQ5nU5FRka61RQXFys5OdmqAQAAv2wePdKUkJCg9957Tx999JHq1KljnYMUGBgof39/HTp0SO+995769eun+vXra8+ePZowYYK6d++uDh06SJJ69+6ttm3b6uGHH9acOXOUm5ur5557TgkJCdaRoNGjR2v+/Pl65pln9Oijj2rjxo368MMPtWbN/17dlZiYqPj4eHXp0kVdu3bVvHnzdP78eT3yyCM3/40BAABex6O3HHA4HGWOL126VCNGjNC3336r3//+98rIyND58+cVERGh+++/X88995zbZf2HDx/WmDFjlJKSolq1aik+Pl6zZs1StWr/mwlTUlI0YcIE7du3T40aNdLzzz+vESNGuG13/vz5mjt3rnJzc9WpUye9/vrr1teBV8MtB0rjlgMAgKrEq+7TVJkRmkojNAEAqhKvuk8TAACAtyI0AQAA2EBoAgAAsIHQBAAAYAOhCQAAwAZCEwAAgA2EJgAAABsITQAAADYQmgAAAGwgNAEAANhAaAIAALCB0AQA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AAAAXqtcoamoqEhJSUlKTk7WiRMnVFxc7LZ848aNFdIcAACAtyhXaBo3bpySkpIUFxendu3aXfGHdwEAAKqKcv1gb3BwsN555x3169fvRvRUKfGDvVUDPwYMALiSct1ywOl0qmXLlhXdCwAAgNcqV2iaOHGiXnvtNZXjIBUAAEClVK5zmrZu3apNmzZp7dq1uv3221W9enW35StWrKiQ5gAAALxFuUJTUFCQ7r///oruBQAAwGuVKzQtXbq0ovsAAADwauU6p0mSLl26pA0bNuiNN97Q2bNnJUlHjx7VuXPnKqw5AAAAb1GuI02HDx9Wnz59lJOTo4KCAv32t79VnTp1NHv2bBUUFGjx4sUV3ScAAIBHletI07hx49SlSxedOXNG/v7+1vj999+v5OTkCmsOAADAW5TrSNM//vEPbdu2TU6n0228adOm+ve//10hjQEAAHiTch1pKi4uVlFRUanxI0eOqE6dOtfdFAAAgLcpV2jq3bu35s2bZz13OBw6d+6cpk2bxk+rAACAKqlcX8+9/PLLio2NVdu2bXXhwgU99NBDOnDggIKDg/X+++9XdI8AAAAeV67Q1KhRI+3evVsffPCB9uzZo3PnzmnkyJEaNmyY24nhAAAAVUW5QpMkVatWTb///e8rshcAAACvVa7Q9M477/zs8uHDh5erGQAAAG9VrtA0btw4t+cXL17U999/L6fTqZo1axKaAABAlVOuq+fOnDnj9jh37pwyMzN19913cyI4AACoksr923OXa9WqlWbNmlXqKBQAAEBVUGGhSfrx5PCjR49W5CoBAAC8QrnOafr73//u9twYo2PHjmn+/Pm66667KqQxAAAAb1Ku0DRgwAC35w6HQw0aNFDPnj318ssvV0RfAAAAXqVcoam4uLii+wAAAPBqFXpOEwAAQFVVriNNiYmJtmtfeeWV8mwCAADAq5QrNO3atUu7du3SxYsX1bp1a0nSv/71L/n6+qpz585WncPhqJguAQAAPKxcoal///6qU6eO3n77bdWtW1fSjze8fOSRR9StWzdNnDixQpsEAADwNIcxxlzri2655RZ99tlnuv32293GMzIy1Lt371/kvZpcLpcCAwOVn5+vgIAAT7djW9MpazzdglfJnhXn6RYAAF6qXCeCu1wunTx5stT4yZMndfbs2etuCgAAwNuUKzTdf//9euSRR7RixQodOXJER44c0d/+9jeNHDlSAwcOrOgeAQAAPK5c5zQtXrxYTz/9tB566CFdvHjxxxVVq6aRI0dq7ty5FdogAACANyjXkaaaNWtq4cKFOnXqlHUl3enTp7Vw4ULVqlXL9nq2bNmi/v37Kzw8XA6HQ6tWrXJbPmLECDkcDrdHnz593GpOnz6tYcOGKSAgQEFBQRo5cqTOnTvnVrNnzx5169ZNNWrUUEREhObMmVOql+XLl6tNmzaqUaOG2rdvr08++cT+GwIAAKq867q55bFjx3Ts2DG1atVKtWrV0rWeU37+/Hl17NhRCxYsuGJNnz59rO0cO3ZM77//vtvyYcOGae/evVq/fr1Wr16tLVu26PHHH7eWu1wu9e7dW02aNFFaWprmzp2r6dOn680337Rqtm3bpqFDh2rkyJHatWuXBgwYoAEDBigjI+Oa5gMAAKqucl09d+rUKT344IPatGmTHA6HDhw4oObNm+vRRx9V3bp1y/X7cw6HQytXrnT7XbsRI0YoLy+v1BGoEl9//bXatm2rL774Ql26dJEkrVu3Tv369dORI0cUHh6uRYsW6dlnn1Vubq6cTqckacqUKVq1apX2798vSRo8eLDOnz+v1atXW+u+88471alTJy1evNhW/1w9VzVw9RwA4ErKdaRpwoQJql69unJyclSzZk1rfPDgwVq3bl2FNSdJKSkpCgkJUevWrTVmzBidOnXKWpaamqqgoCArMElSTEyMfHx8tH37dqume/fuVmCSpNjYWGVmZurMmTNWTUxMjNt2Y2NjlZqaesW+CgoK5HK53B4AAKDqKldo+uyzzzR79mw1atTIbbxVq1Y6fPhwhTQm/fjV3DvvvKPk5GTNnj1bmzdvVt++fVVUVCRJys3NVUhIiNtrqlWrpnr16ik3N9eqCQ0NdaspeX61mpLlZZk5c6YCAwOtR0RExPVNFgAAeLVyXT13/vx5tyNMJU6fPi0/P7/rbqrEkCFDrD+3b99eHTp0UIsWLZSSkqJevXpV2HbKY+rUqW6/wedyuQhOAABUYeU60tStWze988471nOHw6Hi4mLNmTNHPXr0qLDmLte8eXMFBwfr4MGDkqSwsDCdOHHCrebSpUs6ffq0wsLCrJrjx4+71ZQ8v1pNyfKy+Pn5KSAgwO0BAACqrnKFpjlz5ujNN99U3759VVhYqGeeeUbt2rXTli1bNHv27Iru0XLkyBGdOnVKDRs2lCRFR0crLy9PaWlpVs3GjRtVXFysqKgoq2bLli3W/aQkaf369WrdurX1u3nR0dFKTk5229b69esVHR19w+YCAAAql3KFpnbt2ulf//qX7r77bt133306f/68Bg4cqF27dqlFixa213Pu3Dmlp6crPT1dkpSVlaX09HTl5OTo3LlzmjRpkj7//HNlZ2crOTlZ9913n1q2bKnY2FhJ0m233aY+ffpo1KhR2rFjh/75z39q7NixGjJkiMLDwyVJDz30kJxOp0aOHKm9e/dq2bJleu2119y+Whs3bpzWrVunl19+Wfv379f06dO1c+dOjR07tjxvDwAAqIKu+ZYDFy9eVJ8+fbR48WK1atXqujaekpJS5td58fHxWrRokQYMGKBdu3YpLy9P4eHh6t27t1588UW3k7ZPnz6tsWPH6uOPP5aPj48GDRqk119/XbVr17Zq9uzZo4SEBH3xxRcKDg7Wk08+qcmTJ7ttc/ny5XruueeUnZ2tVq1aac6cOerXr5/tuXDLgaqBWw4AAK6kXPdpatCggbZt23bdoakqITRVDYQmAMCVlOvrud///vd66623KroXAAAAr1WuWw5cunRJS5Ys0YYNGxQZGVnq9+ZeeeWVCmkOAADAW1xTaPrmm2/UtGlTZWRkqHPnzpKkf/3rX241Doej4roDAADwEtcUmlq1aqVjx45p06ZNkn782ZTXX3+91N20AQAAqpprOqfp8nPG165dq/Pnz1doQwAAAN6oXCeClyjHhXcAAACV0jWFJofDUeqcJc5hAgAAvwTXdE6TMUYjRoywfpT3woULGj16dKmr51asWFFxHQIAAHiBawpN8fHxbs9///vfV2gzAAAA3uqaQtPSpUtvVB8AAABe7bpOBAcAAPilIDQBAADYQGgCAACwgdAEAABgA6EJAADABkITAACADdd0ywF4TtMpazzdAgAAv2gcaQIAALCB0AQAAGADoQkAAMAGQhMAAIANhCYAAAAbCE0AAAA2EJoAAABsIDQBAADYQGgCAACwgdAEAABgA6EJAADABkITAACADYQmAAAAGwhNAAAANhCaAAAAbCA0AQAA2EBoAgAAsIHQBAAAYAOhCQAAwAZCEwAAgA2EJgAAABsITQAAADYQmgAAAGwgNAEAANhAaAIAALCB0AQAAGADoQkAAMAGj4amLVu2qH///goPD5fD4dCqVavclhtj9MILL6hhw4by9/dXTEyMDhw44FZz+vRpDRs2TAEBAQoKCtLIkSN17tw5t5o9e/aoW7duqlGjhiIiIjRnzpxSvSxfvlxt2rRRjRo11L59e33yyScVPl8AAFB5eTQ0nT9/Xh07dtSCBQvKXD5nzhy9/vrrWrx4sbZv365atWopNjZWFy5csGqGDRumvXv3av369Vq9erW2bNmixx9/3FrucrnUu3dvNWnSRGlpaZo7d66mT5+uN99806rZtm2bhg4dqpEjR2rXrl0aMGCABgwYoIyMjBs3eQAAUKk4jDHG001IksPh0MqVKzVgwABJPx5lCg8P18SJE/X0009LkvLz8xUaGqqkpCQNGTJEX3/9tdq2basvvvhCXbp0kSStW7dO/fr105EjRxQeHq5Fixbp2WefVW5urpxOpyRpypQpWrVqlfbv3y9JGjx4sM6fP6/Vq1db/dx5553q1KmTFi9eXGa/BQUFKigosJ67XC5FREQoPz9fAQEBFf7+NJ2ypsLXidKyZ8V5ugUAgJfy2nOasrKylJubq5iYGGssMDBQUVFRSk1NlSSlpqYqKCjICkySFBMTIx8fH23fvt2q6d69uxWYJCk2NlaZmZk6c+aMVfPT7ZTUlGynLDNnzlRgYKD1iIiIuP5JAwAAr+W1oSk3N1eSFBoa6jYeGhpqLcvNzVVISIjb8mrVqqlevXpuNWWt46fbuFJNyfKyTJ06Vfn5+dbj22+/vdYpAgCASqSapxuorPz8/OTn5+fpNgAAwE3itUeawsLCJEnHjx93Gz9+/Li1LCwsTCdOnHBbfunSJZ0+fdqtpqx1/HQbV6opWQ4AAOC1oalZs2YKCwtTcnKyNeZyubR9+3ZFR0dLkqKjo5WXl6e0tDSrZuPGjSouLlZUVJRVs2XLFl28eNGqWb9+vVq3bq26detaNT/dTklNyXYAAAA8GprOnTun9PR0paenS/rx5O/09HTl5OTI4XBo/Pjxeumll/T3v/9dX331lYYPH67w8HDrCrvbbrtNffr00ahRo7Rjxw7985//1NixYzVkyBCFh4dLkh566CE5nU6NHDlSe/fu1bJly/Taa68pMTHR6mPcuHFat26dXn75Ze3fv1/Tp0/Xzp07NXbs2Jv9lgAAAC/l0VsOpKSkqEePHqXG4+PjlZSUJGOMpk2bpjfffFN5eXm6++67tXDhQt16661W7enTpzV27Fh9/PHH8vHx0aBBg/T666+rdu3aVs2ePXuUkJCgL774QsHBwXryySc1efJkt20uX75czz33nLKzs9WqVSvNmTNH/fr1sz0Xl8ulwMBAbjlQyXHLAQDAlXjNfZoqO0JT1UBoAgBcidee0wQAAOBNCE0AAAA2EJoAAABsIDQBAADYQGgCAACwgdAEAABgA6EJAADABkITAACADYQmAAAAGwhNAAAANhCaAAAAbCA0AQAA2EBoAgAAsIHQBAAAYEM1TzcAeJOmU9bckPVmz4q7IesFANw8HGkCAACwgdAEAABgA6EJAADABkITAACADYQmAAAAGwhNAAAANhCaAAAAbCA0AQAA2EBoAgAAsIHQBAAAYAOhCQAAwAZCEwAAgA2EJgAAABsITQAAADYQmgAAAGwgNAEAANhAaAIAALCB0AQAAGADoQkAAMAGQhMAAIANhCYAAAAbCE0AAAA2EJoAAABsIDQBAADYQGgCAACwgdAEAABgA6EJAADABkITAACADV4dmqZPny6Hw+H2aNOmjbX8woULSkhIUP369VW7dm0NGjRIx48fd1tHTk6O4uLiVLNmTYWEhGjSpEm6dOmSW01KSoo6d+4sPz8/tWzZUklJSTdjegAAoBLx6tAkSbfffruOHTtmPbZu3WotmzBhgj7++GMtX75cmzdv1tGjRzVw4EBreVFRkeLi4lRYWKht27bp7bffVlJSkl544QWrJisrS3FxcerRo4fS09M1fvx4PfbYY/r0009v6jwBAIB3q+bpBq6mWrVqCgsLKzWen5+vt956S++995569uwpSVq6dKluu+02ff7557rzzjv12Wefad++fdqwYYNCQ0PVqVMnvfjii5o8ebKmT58up9OpxYsXq1mzZnr55ZclSbfddpu2bt2qV199VbGxsTd1rgAAwHt5/ZGmAwcOKDw8XM2bN9ewYcOUk5MjSUpLS9PFixcVExNj1bZp00aNGzdWamqqJCk1NVXt27dXaGioVRMbGyuXy6W9e/daNT9dR0lNyTqupKCgQC6Xy+0BAACqLq8OTVFRUUpKStK6deu0aNEiZWVlqVu3bjp79qxyc3PldDoVFBTk9prQ0FDl5uZKknJzc90CU8nykmU/V+NyufTDDz9csbeZM2cqMDDQekRERFzvdAEAgBfz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",
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "# @title sql_context_length\n",
        "\n",
        "from matplotlib import pyplot as plt\n",
        "sql_df['sql_context_length'].plot(kind='hist', bins=20, title='sql_context_length')\n",
        "plt.gca().spines[['top', 'right',]].set_visible(False)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 20,
      "metadata": {
        "cellView": "form",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 452
        },
        "id": "6F30fZrNZWBt",
        "outputId": "13a2327f-de8e-4912-c0ca-212195158fa2"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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6tWrCU2AlzkMZw4CuIhV3Q38zDtmXyyKi4vVtGlTPfPMM3riiSe83Q6Ac+CcJgC4QL7//vtqY7Nnz5akOvspGAC1h6/nANRb5eXlOnr06DlrwsLCFBISckH6efPNN5WVlaWBAweqcePG+uijj/SPf/xD/fv313XXXXdBegBQc4QmAPXW+vXr1bdv33PWLFy40Pqx3LrWuXNnBQQEaMaMGXK5XNbJ4c8888wFeX0APw/nNAGot44dO6a8vLxz1lx99dVq1arVBeoIwMWM0AQAAGADJ4IDAADYQGiqJcYYuVwufvsJAIB6itBUS44fP66wsDAdP37c260AAIA6QGgCAACwgdAEAABgA6EJAADABkITAACADYQmAAAAGwhNAAAANhCaAAAAbCA0AQAA2EBoAgAAsIHQBAAAYAOhCQAAwAZCEwAAgA1eDU3z589X586dFRoaqtDQUCUmJmr58uXW/MmTJ5Wenq7mzZurcePGGjJkiAoLCz32UVBQoJSUFDVs2FARERF67LHHdOrUKY+aNWvWqFu3bgoODla7du2UlZVVrZd58+YpNjZWDRo0UEJCgjZu3FgnawYAABcnr4am1q1ba/r06crLy9OmTZt044036rbbbtOOHTskSePHj9d7772nxYsXa+3atTp06JBuv/126/mVlZVKSUlReXm51q9fr1dffVVZWVmaPHmyVbN//36lpKSob9++2rJli8aNG6cHHnhAK1eutGrefPNNZWRkaMqUKfrss8/UpUsXJScnq6io6MK9GQAAwLcZH9O0aVPz8ssvm+LiYhMYGGgWL15szX3++edGksnNzTXGGPP+++8bPz8/43Q6rZr58+eb0NBQU1ZWZowx5vHHHzdXX321x2sMHTrUJCcnW4979uxp0tPTrceVlZUmOjraZGZm2u67pKTESDIlJSXnt2AAAHBR8JlzmiorK7Vo0SKVlpYqMTFReXl5qqioUFJSklXToUMHtWnTRrm5uZKk3NxcderUSZGRkVZNcnKyXC6XdbQqNzfXYx9VNVX7KC8vV15enkeNn5+fkpKSrJqzKSsrk8vl8tgAAED9FeDtBrZv367ExESdPHlSjRs31pIlSxQfH68tW7YoKChI4eHhHvWRkZFyOp2SJKfT6RGYquar5s5V43K59P333+vYsWOqrKw8a82uXbt+tO/MzExNmzatRmv2JbET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p9OpJ598Uunp6daRoJEjR2ru3Ll6/PHHdf/992vVqlV66623tGzZf09UzsjIUGpqqnr06KGePXtq9uzZKi0t1YgRIy78GwMAAHyOV2854HA4zjq+cOFCDR8+XF9//bXuuece5efnq7S0VDExMRo8eLCefPJJj8v6v/rqK40aNUpr1qxRo0aNlJqaqunTpysg4L+ZcM2aNRo/frx27typ1q1b66mnntLw4cM9Xnfu3LmaOXOmnE6nunbtqhdeeMH6OvCncMuBC4er5wAA3uBT92m6mBGaLhxCEwDAG/jtOQAAABsITQAAADYQmgAAAGwgNAEAANhAaAIAALCB0AQAAGADoQkAAMAGQhMAAIANhCYAAAAbCE0AAAA2EJoAAABsIDQBAADYQGgCAACwgdAEAABgA6EJAADABkITAACADYQmAAAAGwhNAAAANhCaAAAAbCA0AQAA2EBoAgAAsIHQBAAAYAOhCQAAwAZCEwAAgA2EJgAAABsITQAAADYQmgAAAGwgNAEAANhAaAIAALCB0AQAAGADoQkAAMAGQhMAAIANhCYAAAAbCE0AAAA2EJoAAABsIDQBAADYQGgCAACwgdAEAABgA6EJAADABkITAACADYQmAAAAGwhNAAAANhCaAAAAbCA0AQAA2EBoAgAAsIHQBAAAYAOhCQAAwAZCEwAAgA1eDU2ZmZm69tpr1aRJE0VERGjQoEHavXu3R83JkyeVnp6u5s2bq3HjxhoyZIgKCws9agoKCpSSkqKGDRsqIiJCjz32mE6dOuVRs2bNGnXr1k3BwcFq166dsrKyqvUzb948xcbGqkGDBkpISNDGjRtrfc0AAODi5NXQtHbtWqWnp+uTTz5Rdna2Kioq1L9/f5WWllo148eP13vvvafFixdr7dq1OnTokG6//XZrvrKyUikpKSovL9f69ev16quvKisrS5MnT7Zq9u/fr5SUFPXt21dbtmzRuHHj9MADD2jlypVWzZtvvqmMjAxNmTJFn332mbp06aLk5GQVFRVdmDcDAAD4NIcxxni7iSpHjhxRRESE1q5dq+uvv14lJSVq2bKl3njjDd1xxx2SpF27dumqq65Sbm6uevXqpeXLl+tXv/qVDh06pMjISEnSggULNGHCBB05ckRBQUGaMGGCli1bpvz8fOu17rzzThUXF2vFihWSpISEBF177bWaO3euJMntdismJkZjxozRxIkTf7J3l8ulsLAwlZSUKDQ0tLbfmjoTO3GZt1s4bwemp3i7BQDAJcinzmkqKSmRJDVr1kySlJeXp4qKCiUlJVk1HTp0UJs2bZSbmytJys3NVadOnazAJEnJyclyuVzasWOHVXP6PqpqqvZRXl6uvLw8jxo/Pz8lJSVZNWcqKyuTy+Xy2AAAQP3lM6HJ7XZr3Lhxuu6669SxY0dJktPpVFBQkMLDwz1qIyMj5XQ6rZrTA1PVfNXcuWpcLpe+//57ffvtt6qsrDxrTdU+zpSZmamwsDBri4mJqdnCAQDARcFnQlN6erry8/O1aNEib7diy6RJk1RSUmJtX3/9tbdbAgAAdSjA2w1I0ujRo7V06VKtW7dOrVu3tsajoqJUXl6u4uJij6NNhYWFioqKsmrOvMqt6uq602vOvOKusLBQoaGhCgkJkb+/v/z9/c9aU7WPMwUHBys4OLhmCwYAABcdrx5pMsZo9OjRWrJkiVatWqW4uDiP+e7duyswMFA5OTnW2O7du1VQUKDExERJUmJiorZv3+5xlVt2drZCQ0MVHx9v1Zy+j6qaqn0EBQWpe/fuHjVut1s5OTlWDQAAuLR59UhTenq63njjDf3zn/9UkyZNrPOHwsLCFBISorCwMKWlpSkjI0PNmjVTaGioxowZo8TERPXq1UuS1L9/f8XHx+vee+/VjBkz5HQ69eSTTyo9Pd06EjRy5EjNnTtXjz/+uO6//36tWrVKb731lpYt+++VYxkZGUpNTVWPHj3Us2dPzZ49W6WlpRoxYsSFf2MAAIDP8Wpomj9/viTphhtu8BhfuHChhg8fLkl6/vnn5efnpyFDhqisrEzJycl68cUXrVp/f38tXbpUo0aNUmJioho1aqTU1FT94Q9/sGri4uK0bNkyjR8/XnPmzFHr1q318ssvKzk52aoZOnSojhw5osmTJ8vpdKpr165asWJFtZPDAQDApcmn7tN0MeM+TRcO92kCAHiDz1w9BwAA4MsITQAAADYQmgAAAGwgNAEAANhAaAIAALCB0AQAAGADoQkAAMAGQhMAAIANhCYAAAAbCE0AAAA21Cg0ffnll7XdBwAAgE+rUWhq166d+vbtq9dff10nT56s7Z4AAAB8To1C02effabOnTsrIyNDUVFR+u1vf6uNGzfWdm8AAAA+o0ahqWvXrpozZ44OHTqkv/71rzp8+LB69+6tjh076rnnntORI0dqu08AAACv+lknggcEBOj222/X4sWL9eyzz2rv3r169NFHFRMTo/vuu0+HDx+urT4BAAC86meFpk2bNunhhx9Wq1at9Nxzz+nRRx/Vvn37lJ2drUOHDum2226rrT4BAAC8KqAmT3ruuee0cOFC7d69WwMHDtRrr72mgQMHys/vhwwWFxenrKwsxcbG1mavAAAAXlOj0DR//nzdf//9Gj58uFq1anXWmoiICL3yyis/qzkAAABfUaPQtGfPnp+sCQoKUmpqak12DwAA4HNqdE7TwoULtXjx4mrjixcv1quvvvqzmwIAAPA1NQpNmZmZatGiRbXxiIgI/elPf/rZTQEAAPiaGoWmgoICxcXFVRtv27atCgoKfnZTAAAAvqZGoSkiIkLbtm2rNr5161Y1b978ZzcFAADga2oUmu666y797ne/0+rVq1VZWanKykqtWrVKY8eO1Z133lnbPQIAAHhdja6ee/rpp3XgwAH169dPAQE/7MLtduu+++7jnCYAAFAv1Sg0BQUF6c0339TTTz+trVu3KiQkRJ06dVLbtm1ruz8AAACfUKPQVOWKK67QFVdcUVu9AAAA+KwahabKykplZWUpJydHRUVFcrvdHvOrVq2qleYAAAB8RY1C09ixY5WVlaWUlBR17NhRDoejtvsCAADwKTUKTYsWLdJbb72lgQMH1nY/AAAAPqnGJ4K3a9eutnsBbImduKzO9n1gekqd7RsAcHGr0X2aHnnkEc2ZM0fGmNruBwAAwCfV6EjTRx99pNWrV2v58uW6+uqrFRgY6DH/9ttv10pzAAAAvqJGoSk8PFyDBw+u7V4AAAB8Vo1C08KFC2u7DwAAAJ9Wo3OaJOnUqVP68MMP9ec//1nHjx+XJB06dEgnTpyoteYAAAB8RY2ONH311VcaMGCACgoKVFZWpptuuklNmjTRs88+q7KyMi1YsKC2+wQAAPCqGh1pGjt2rHr06KFjx44pJCTEGh88eLBycnJqrTkAAABfUaMjTf/617+0fv16BQUFeYzHxsbqm2++qZXGAAAAfEmNjjS53W5VVlZWGz948KCaNGnys5sCAADwNTUKTf3799fs2bOtxw6HQydOnNCUKVP4aRUAAFAv1ejruVmzZik5OVnx8fE6efKk7r77bu3Zs0ctWrTQP/7xj9ruEQAAwOtqFJpat26trVu3atGiRdq2bZtOnDihtLQ0DRs2zOPEcAAAgPqiRqFJkgICAnTPPffUZi8AAAA+q0ah6bXXXjvn/H333VejZgAAAHxVjULT2LFjPR5XVFTo3//+t4KCgtSwYUNCEwAAqHdqdPXcsWPHPLYTJ05o9+7d6t27NyeCAwCAeqnGvz13pvbt22v69OnVjkKdy7p163TLLbcoOjpaDodD77zzjsf88OHD5XA4PLYBAwZ41Bw9elTDhg1TaGiowsPDlZaWVu3377Zt26Y+ffqoQYMGiomJ0YwZM6r1snjxYnXo0EENGjRQp06d9P7779tfPAAAqPdqLTRJP5wcfujQIdv1paWl6tKli+bNm/ejNQMGDNDhw4et7cwjWcOGDdOOHTuUnZ2tpUuXat26dXrooYeseZfLpf79+6tt27bKy8vTzJkzNXXqVL300ktWzfr163XXXXcpLS1Nmzdv1qBBgzRo0CDl5+efx+oBAEB95jDGmPN90rvvvuvx2Bijw4cPa+7cuYqJidHy5cvPvxGHQ0uWLNGgQYOsseHDh6u4uLjaEagqn3/+ueLj4/Xpp5+qR48ekqQVK1Zo4MCBOnjwoKKjozV//nw98cQTcjqd1s++TJw4Ue+884527dolSRo6dKhKS0u1dOlSa9+9evVS165dbf/4sMvlUlhYmEpKShQaGnre6/eW2InLvN2CTzkwPcXbLQAAfFSNTgQ/PdhIPwSeli1b6sYbb9SsWbNqoy/LmjVrFBERoaZNm+rGG2/UM888o+bNm0uScnNzFR4ebgUmSUpKSpKfn582bNigwYMHKzc3V9dff73H7+QlJyfr2Wef1bFjx9S0aVPl5uYqIyPD43WTk5N/NKxJUllZmcrKyqzHLperllYMAAB8UY1Ck9vtru0+zmrAgAG6/fbbFRcXp3379un3v/+9br75ZuXm5srf319Op1MREREezwkICFCzZs3kdDolSU6nU3FxcR41kZGR1lzTpk3ldDqtsdNrqvZxNpmZmZo2bVptLBMAAFwEanxzywvhzjvvtP7dqVMnde7cWZdffrnWrFmjfv36ebEzadKkSR5Hp1wul2JiYrzYEQAAqEs1Ck1nfpV1Ls8991xNXuKsLrvsMrVo0UJ79+5Vv379FBUVpaKiIo+aU6dO6ejRo4qKipIkRUVFqbCw0KOm6vFP1VTNn01wcLCCg4N/9poAAMDFoUahafPmzdq8ebMqKip05ZVXSpK++OIL+fv7q1u3bladw+GonS7/4+DBg/ruu+/UqlUrSVJiYqKKi4uVl5en7t27S5JWrVolt9uthIQEq+aJJ55QRUWFAgMDJUnZ2dm68sor1bRpU6smJydH48aNs14rOztbiYmJtdo/AAC4eNUoNN1yyy1q0qSJXn31VSt4HDt2TCNGjFCfPn30yCOP2NrPiRMntHfvXuvx/v37tWXLFjVr1kzNmjXTtGnTNGTIEEVFRWnfvn16/PHH1a5dOyUnJ0uSrrrqKg0YMEAPPvigFixYoIqKCo0ePVp33nmnoqOjJUl33323pk2bprS0NE2YMEH5+fmaM2eOnn/+eet1x44dq1/+8peaNWuWUlJStGjRIm3atMnjtgQAAODSVqNbDvziF7/QBx98oKuvvtpjPD8/X/3797d9r6Y1a9aob9++1cZTU1M1f/58DRo0SJs3b1ZxcbGio6PVv39/Pf300x4nbR89elSjR4/We++9Jz8/Pw0ZMkQvvPCCGjdubNVs27ZN6enp+vTTT9WiRQuNGTNGEyZM8HjNxYsX68knn9SBAwfUvn17zZgxQwMHDrT9nnDLgfqBWw4AAH5MjUJTkyZN9N577+mGG27wGF+9erVuvfVWHT9+vLb6u2gQmuoHQhMA4MfU6I7ggwcP1ogRI/T222/r4MGDOnjwoP7f//t/SktL0+23317bPQIAAHhdjc5pWrBggR599FHdfffdqqio+GFHAQFKS0vTzJkza7VBAAAAX1Cjr+eqlJaWat++fZKkyy+/XI0aNaq1xi42fD1XP/D1HADgx/ysH+yt+hHd9u3bq1GjRvoZ+QsAAMCn1Sg0fffdd+rXr5+uuOIKDRw4UIcPH5YkpaWl2b7dAAAAwMWkRqFp/PjxCgwMVEFBgRo2bGiNDx06VCtWrKi15gAAAHxFjU4E/+CDD7Ry5Uq1bt3aY7x9+/b66quvaqUxAAAAX1KjI02lpaUeR5iqHD16lN9jAwAA9VKNQlOfPn302muvWY8dDofcbrdmzJhx1jt8AwAAXOxq9PXcjBkz1K9fP23atEnl5eV6/PHHtWPHDh09elQff/xxbfcIAADgdTU60tSxY0d98cUX6t27t2677TaVlpbq9ttv1+bNm3X55ZfXdo8AAABed95HmioqKjRgwAAtWLBATzzxRF30BAAA4HPO+0hTYGCgtm3bVhe9AAAA+KwafT13zz336JVXXqntXgAAAHxWjU4EP3XqlP7617/qww8/VPfu3av95txzzz1XK80BAAD4ivMKTV9++aViY2OVn5+vbt26SZK++OILjxqHw1F73QEAAPiI8wpN7du31+HDh7V69WpJP/xsygsvvKDIyMg6aQ4AAMBXnNc5TcYYj8fLly9XaWlprTYEAADgi2p0IniVM0MUAABAfXVeocnhcFQ7Z4lzmAAAwKXgvM5pMsZo+PDh1o/ynjx5UiNHjqx29dzbb79dex0CAAD4gPMKTampqR6P77nnnlptBgAAwFedV2hauHBhXfUBAADg037WieAAAACXCkITAACADYQmAAAAGwhNAAAANhCaAAAAbCA0AQAA2EBoAgAAsIHQBAAAYAOhCQAAwAZCEwAAgA2EJgAAABsITQAAADYQmgAAAGwgNAEAANhAaAIAALCB0AQAAGADoQkAAMAGQhMAAIANhCYAAAAbCE0AAAA2EJoAAABsIDQBAADYEODtBgBfEjtxWZ3s98D0lDrZLwDgwuFIEwAAgA2EJgAAABu8GprWrVunW265RdHR0XI4HHrnnXc85o0xmjx5slq1aqWQkBAlJSVpz549HjVHjx7VsGHDFBoaqvDwcKWlpenEiRMeNdu2bVOfPn3UoEEDxcTEaMaMGdV6Wbx4sTp06KAGDRqoU6dOev/992t9vQAA4OLl1dBUWlqqLl26aN68eWednzFjhl544QUtWLBAGzZsUKNGjZScnKyTJ09aNcOGDdOOHTuUnZ2tpUuXat26dXrooYeseZfLpf79+6tt27bKy8vTzJkzNXXqVL300ktWzfr163XXXXcpLS1Nmzdv1qBBgzRo0CDl5+fX3eIBAMBFxWGMMd5uQpIcDoeWLFmiQYMGSfrhKFN0dLQeeeQRPfroo5KkkpISRUZGKisrS3feeac+//xzxcfH69NPP1WPHj0kSStWrNDAgQN18OBBRUdHa/78+XriiSfkdDoVFBQkSZo4caLeeecd7dq1S5I0dOhQlZaWaunSpVY/vXr1UteuXbVgwQJb/btcLoWFhamkpEShoaG19bbUubo68RmeOBEcAC5+PntO0/79++V0OpWUlGSNhYWFKSEhQbm5uZKk3NxchYeHW4FJkpKSkuTn56cNGzZYNddff70VmCQpOTlZu3fv1rFjx6ya01+nqqbqdc6mrKxMLpfLYwMAAPWXz4Ymp9MpSYqMjPQYj4yMtOacTqciIiI85gMCAtSsWTOPmrPt4/TX+LGaqvmzyczMVFhYmLXFxMSc7xIBAMBFxGdDk6+bNGmSSkpKrO3rr7/2dksAAKAO+WxoioqKkiQVFhZ6jBcWFlpzUVFRKioq8pg/deqUjh496lFztn2c/ho/VlM1fzbBwcEKDQ312AAAQP3ls6EpLi5OUVFRysnJscZcLpc2bNigxMRESVJiYqKKi4uVl5dn1axatUput1sJCQlWzbp161RRUWHVZGdn68orr1TTpk2tmtNfp6qm6nUAAAC8GppOnDihLVu2aMuWLZJ+OPl7y5YtKigokMPh0Lhx4/TMM8/o3Xff1fbt23XfffcpOjrausLuqquu0oABA/Tggw9q48aN+vjjjzV69Gjdeeedio6OliTdfffdCgoKUlpamnbs2KE333xTc+bMUUZGhtXH2LFjtWLFCs2aNUu7du3S1KlTtWnTJo0ePfpCvyUAAMBHefWWA2vWrFHfvn2rjaempiorK0vGGE2ZMkUvvfSSiouL1bt3b7344ou64oorrNqjR49q9OjReu+99+Tn56chQ4bohRdeUOPGja2abdu2KT09XZ9++qlatGihMWPGaMKECR6vuXjxYj355JM6cOCA2rdvrxkzZmjgwIG218ItB3Au3HIAAC5+PnOfposdoQnnQmgCgIufz57TBAAA4EsITQAAADYQmgAAAGwgNAEAANhAaAIAALCB0AQAAGADoQkAAMAGQhMAAIANhCYAAAAbCE0AAAA2EJoAAABsIDQBAADYQGgCAACwgdAEAABgA6EJAADABkITAACADYQmAAAAGwhNAAAANhCaAAAAbCA0AQAA2EBoAgAAsIHQBAAAYAOhCQAAwAZCEwAAgA2EJgAAABsITQAAADYQmgAAAGwgNAEAANhAaAIAALCB0AQAAGADoQkAAMAGQhMAAIANhCYAAAAbCE0AAAA2EJoAAABsIDQBAADYQGgCAACwgdAEAABgA6EJAADABkITAACADYQmAAAAGwhNAAAANhCaAAAAbAjwdgPApSB24rI62/eB6Sl1tm8AwH9xpAkAAMAGQhMAAIANhCYAAAAbCE0AAAA2+HRomjp1qhwOh8fWoUMHa/7kyZNKT09X8+bN1bhxYw0ZMkSFhYUe+ygoKFBKSooaNmyoiIgIPfbYYzp16pRHzZo1a9StWzcFBwerXbt2ysrKuhDLAwAAFxGfv3ru6quv1ocffmg9Dgj4b8vjx4/XsmXLtHjxYoWFhWn06NG6/fbb9fHHH0uSKisrlZKSoqioKK1fv16HDx/Wfffdp8DAQP3pT3+SJO3fv18pKSkaOXKk/v73vysnJ0cPPPCAWrVqpeTk5Au72HOoy6uvAADAT/P50BQQEKCoqKhq4yUlJXrllVf0xhtv6MYbb5QkLVy4UFdddZU++eQT9erVSx988IF27typDz/8UJGRkeratauefvppTZgwQVOnTlVQUJAWLFiguLg4zZo1S5J01VVX6aOPPtLzzz/vU6EJAAB4l09/PSdJe/bsUXR0tC677DINGzZMBQUFkqS8vDxVVFQoKSnJqu3QoYPatGmj3NxcSVJubq46deqkyMhIqyY5OVkul0s7duywak7fR1VN1T5+TFlZmVwul8cGAADqL58OTQkJCcrKytKKFSs0f/587d+/X3369NHx48fldDoVFBSk8PBwj+dERkbK6XRKkpxOp0dgqpqvmjtXjcvl0vfff/+jvWVmZiosLMzaYmJifu5yAQCAD/Ppr+duvvlm69+dO3dWQkKC2rZtq7feekshISFe7EyaNGmSMjIyrMcul4vgBABAPebTR5rOFB4eriuuuEJ79+5VVFSUysvLVVxc7FFTWFhonQMVFRVV7Wq6qsc/VRMaGnrOYBYcHKzQ0FCPDQAA1F8XVWg6ceKE9u3bp1atWql79+4KDAxUTk6ONb97924VFBQoMTFRkpSYmKjt27erqKjIqsnOzlZoaKji4+OtmtP3UVVTtQ8AAADJx0PTo48+qrVr1+rAgQNav369Bg8eLH9/f911110KCwtTWlqaMjIytHr1auXl5WnEiBFKTExUr169JEn9+/dXfHy87r33Xm3dulUrV67Uk08+qfT0dAUHB0uSRo4cqS+//FKPP/64du3apRdffFFvvfWWxo8f782lAwAAH+PT5zQdPHhQd911l7777ju1bNlSvXv31ieffKKWLVtKkp5//nn5+flpyJAhKisrU3Jysl588UXr+f7+/lq6dKlGjRqlxMRENWrUSKmpqfrDH/5g1cTFxWnZsmUaP3685syZo9atW+vll1/mdgMAAMCDwxhj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a625ubkKDw9Xjx49rJqkpCT5+flpw4YNF7zn81VSUiJJatasmSQpLy9PFRUVHmvu0KGD2rRp47HmTp06edxtPjk5WS6XSzt27LiA3Z+/yspKLVq0SKWlpUpMTKzX601PT1dKSorH2qT6+xnv2bNH0dHRuuyyyzRs2DAVFBRIqp/rfffdd9WjRw/9+te/VkREhK655hr95S9/sebr+9+u8vJyvf7667r//vvlcDjq5WdcFwhNXvDtt9+qsrKy2s+zREZGyul0eqmrulG1nnOt1el0KiIiwmM+ICBAzZo18/n3w+12a9y4cbruuuvUsWNHST+sJygoSOHh4R61Z675bO9J1Zwv2r59uxo3bqzg4GCNHDlSS5YsUXx8fL1d76JFi/TZZ58pMzOz2lx9XHNCQoKysrK0YsUKzZ8/X/v371efPn10/PjxerneL7/8UvPnz1f79u21cuVKjRo1Sr/73e/06quvSqr/f7veeecdFRcXa/jw4ZLq5//TdYHfngN+hvT0dOXn5+ujjz7ydit17sorr9SWLVtUUlKi//u//1NqaqrWrl3r7bbqxNdff62xY8cqOztbDRo08HY7F8TNN99s/btz585KSEhQ27Zt9dZbbykkJMSLndUNt9utHj166E9/+pMk6ZprrlF+fr4WLFig1NRUL3dX91555RXdfPPNio6O9nYrFxWONHlBixYt5O/vX+2qhMLCQkVFRXmpq7pRtZ5zrTUqKkpFRUUe86dOndLRo0d9+v0YPXq0li5dqtWrV6t169bWeFRUlMrLy1VcXOxRf+aaz/aeVM35oqCgILVr107du3dXZmamunTpojlz5tTL9ebl5amoqEjdunVTQECAAgICtHbtWr3wwgsKCAhQZGRkvVvzmcLDw3XFFVdo79699fIzbtWqleLj4z3GrrrqKusryfr8t+urr77Shx9+qAceeMAaq4+fcV0gNHlBUFCQunfvrpycHGvM7XYrJydHiYmJXuys9sXFxSkqKspjrS6XSxs2bLDWmpiYqOLiYuXl5Vk1q1atktvtVkJCwgXv+acYYzR69GgtWbJEq1atUlxcnMd89+7dFRgY6LHm3bt3q6CgwGPN27dv9/iDm52drdDQ0Gp/yH2V2+1WWVlZvVxvv379tH37dm3ZssXaevTooWHDhln/rm9rPtOJEye0b98+tWrVql5+xtddd121W4V88cUXatu2raT6+berysKFCxUREaGUlBRrrD5+xnXC22eiX6oWLVpkgoODTVZWltm5c6d56KGHTHh4uMdVCReL48ePm82bN5vNmzcbSea5554zmzdvNl999ZUx5ofLdsPDw80///lPs23bNnPbbbed9bLda665xmzYsMF89NFHpn379j572e6oUaNMWFiYWbNmjcflu//+97+tmpEjR5o2bdqYVatWmU2bNpnExESTmJhozVddutu/f3+zZcsWs2LFCtOyZUufvXR34sSJZu3atWb//v1m27ZtZuLEicbhcJgPPvjAGFP/1ns2p189Z0z9W/Mjjzxi1qxZY/bv328+/vhjk5SUZFq0aGGKioqMMfVvvRs3bjQBAQHmj3/8o9mzZ4/5+9//bho2bGhef/11q6a+/e0y5ocrtdu0aWMmTJhQba6+fcZ1gdDkRf/7v/9r2rRpY4KCgkzPnj3NJ5984u2WamT16tVGUrUtNTXVGPPDpbtPPfWUiYyMNMHBwaZfv35m9+7dHvv47rvvzF133WUaN25sQkNDzYgRI8zx48e9sJqfdra1SjILFy60ar7//nvz8MMPm6ZNm5qGDRuawYMHm8OHD3vs58CBA+bmm282ISEhpkWLFuaRRx4xFRUVF3g19tx///2mbdu2JigoyLRs2dL069fPCkzG1L/1ns2Zoam+rXno0KGmVatWJigoyPziF78wQ4cO9bhnUX1brzHGvPfee6Zjx44mODjYdOjQwbz00kse8/Xtb5cxxqxcudJIqrYOY+rnZ1zbHMYY45VDXAAAABcRzmkCAACwgdAEAABgA6EJAADABkITAACADYQmAAAAGwhNAAAANhCaAAAAbCA0AQAA2EBoAgAAsIHQBAAAYAOhCQAAwIb/D/TcFoqhB16pAAAAAElFTkSuQmCC",
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "# @title sql_length\n",
        "\n",
        "from matplotlib import pyplot as plt\n",
        "sql_df['sql_length'].plot(kind='hist', bins=20, title='sql_length')\n",
        "plt.gca().spines[['top', 'right',]].set_visible(False)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Wt_WcT7mUQZl"
      },
      "source": [
        "## Approach 1: Deduplication using pandas\n",
        "\n",
        "A niave approach we can take to dropping duplicates (including exact strings) is to use Pandas. Note that, adding some basic form of text normalization (lowercasing, removing punctuation, etc.) can help with this process too. "
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 31,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "SwfCnQ_bGEpU",
        "outputId": "769e597d-2c6f-45e2-c59d-460afa8002eb"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "(100000, 99271)"
            ]
          },
          "execution_count": 31,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "deduplicated_pandas = sql_df.drop_duplicates(subset='sql')\n",
        "len(sql_df), len(deduplicated_pandas)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "6qVC_vyba5h_"
      },
      "source": [
        "## Approach 2: Deduplication using hashlib\n",
        "\n",
        "The Python standard library hashlib can be used to hash strings and then compare them. The `md5` hash can be used to hash strings and then compare them but this hashing function is not designed specifically for string deduplication but it can work sufficiently well for some use cases."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 36,
      "metadata": {
        "id": "TxAgN_rzASzV"
      },
      "outputs": [],
      "source": [
        "import hashlib\n",
        "\n",
        "def get_hash(example):\n",
        "    \"\"\"Get hash of content field.\"\"\"\n",
        "    return {\"hash\": hashlib.md5(example[\"sql\"].strip().encode(\"utf-8\")).hexdigest()}\n",
        "\n",
        "def check_uniques(example, uniques):\n",
        "    \"\"\"Check if current hash is still in set of unique hashes and remove if true.\"\"\"\n",
        "    if example[\"hash\"] in uniques:\n",
        "        uniques.remove(example[\"hash\"])\n",
        "        return True\n",
        "    else:\n",
        "        return False\n",
        "\n",
        "def preprocess(example):\n",
        "    \"\"\"Chain all preprocessing steps into one function to not fill cache.\"\"\"\n",
        "    results = dict()\n",
        "    results.update(get_hash(example))\n",
        "    return results\n",
        "\n",
        "def filter_duplicates(example, uniques):\n",
        "    \"\"\"Filter dataset with heuristics. Config, test and has_no_keywords files are removed with a given probability.\"\"\"\n",
        "    if not check_uniques(example, uniques):\n",
        "        return False\n",
        "    else:\n",
        "        return True\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 81,
          "referenced_widgets": [
            "8d344315f6f849d29c041299fca9bf5d",
            "65f6904e5d2b46f68e1e55d41459f59a",
            "50de3541f27b422992e611c9809bff47",
            "ad5a85a6d4274f4485001c6ba8c4856b",
            "facd1b7c40544282b409e37bda3cbcef",
            "dc9a256839174f9bab11593da9ff5301",
            "231d033c8374482f86c6d565ca99cf61",
            "54b04ee727154934a9878acc024e1659",
            "3cfdd30355434fdc8f9c46d184c6fd4a",
            "710b4cd8797d4aa6b1757cc8d979dd4e",
            "1aa44f998c10466fbfd8d92f57c7c9f8",
            "e1b408f3f4c74fbd8f70d7d44c37ccce",
            "07b273a6ad424763a86940307197443c",
            "2cb7f3b5dbe74a0daed5b668634bfe1c",
            "975109fc01704aa0822be74a370881b7",
            "0116d2e5a7074c14a4ddf2cfc9c250dd",
            "0a213893e98940da9af29caf199a675e",
            "01eac22230884d7b9172f046af4c5574",
            "cf799abebbce4c8b813e8d1f1f790345",
            "74896dbb57ec4de8a694c795a5accf64",
            "c76368b5718745868e6fdac855bd5bca",
            "e39b483e4ac944fabc05182b097f54d9"
          ]
        },
        "id": "VWs8DLXPASwu",
        "outputId": "f27b0e35-51e7-4edd-f05b-b3c38107195a"
      },
      "outputs": [],
      "source": [
        "# Run preprocessing\n",
        "sql_dataset = sql_dataset.map(preprocess, num_proc=4)\n",
        "\n",
        "# Deduplicate hashes\n",
        "uniques = set(sql_dataset.unique(\"hash\"))\n",
        "\n",
        "# Deduplicate data and apply heuristics\n",
        "sql_dataset_hashlib_deduped = sql_dataset.filter(filter_duplicates, fn_kwargs={\"uniques\": uniques})"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 38,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "uPOHnRP-ASuV",
        "outputId": "b0003a09-d90a-4ce1-cc4d-de99a4e30a6a"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "(100000, 99269)"
            ]
          },
          "execution_count": 38,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "len(sql_dataset), len(sql_dataset_hashlib_deduped)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "iGfsxsbvbfCy"
      },
      "source": [
        "## Approach 3: Deduplication using MinHash\n",
        "\n",
        "> MinHash lets you estimate the Jaccard similarity (resemblance) between sets of arbitrary sizes in linear time using a small and fixed memory space. It can also be used to compute Jaccard similarity between data streams. MinHash is introduced by Andrei Z. Broder in this paper\n",
        "> [Source](https://ekzhu.com/datasketch/minhash.html)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 81,
          "referenced_widgets": [
            "4389b5b2c6384ee1a770c0483b29824d",
            "86b12291302041e5959953b088d1fc3d",
            "721a2eb9fd9e4c7bb1e88e414d86e041",
            "b3024e2c601549be8d5d3be288ef2a40",
            "d9ff34467c3c481fbfe2d3431e841a7b",
            "a3754e7a70b34cc496637b0fb45cf1c9",
            "b6a4235e2963459f8f57e6ffbdb584da",
            "a08a116a0cdf4cf6954db9e830785135",
            "1f45f19587154ec2adbeb3904c38d745",
            "c4bc9e2264a4468c802aba5c5fb6d4f7",
            "d218ffe341d045579f730d64e39d1d5f",
            "3ffffaeaa57741ef812ae0c7089781bb",
            "f3d634f66ebc470cb1b618671f98c634",
            "4243ea64321a41768a37af6b6a9066ff",
            "544deb1ffc1e40738bd78c8cceb82071",
            "4811b34aefde46a89c7f5c5a09dd4ea2",
            "88dca456c8974c9aafc1da8aa7b199ef",
            "0a69f87f8e874e18b046bb8be0ea163f",
            "7e881af07d4b427daa70858d12568d6a",
            "09e4b5a7d0b54f3b83afafe4b621fe8b",
            "881c884690774c7ba93a3b5b2b9ef659",
            "bd2d0f35fabf47ab8ef3faf82e0e64d3"
          ]
        },
        "id": "RLY6Y-z6CPLx",
        "outputId": "7d199c34-98d5-4bbe-9b3e-34d0c977fb82"
      },
      "outputs": [],
      "source": [
        "from datasketch import MinHash\n",
        "\n",
        "def minhash_signature(text, num_perm=128):\n",
        "    m = MinHash(num_perm=num_perm)\n",
        "    for word in text.split():\n",
        "        m.update(word.encode('utf-8'))\n",
        "    return m\n",
        "\n",
        "def preprocess(example):\n",
        "    signature = minhash_signature(example[\"sql\"])\n",
        "    # Convert MinHash object to a list of integers for serialization\n",
        "    hash_values = signature.hashvalues.tolist()\n",
        "    return {\"minhash\": hash_values}\n",
        "\n",
        "processed_dataset = sql_dataset.map(preprocess, num_proc=4)\n",
        "\n",
        "unique_hashes = set()\n",
        "def filter_duplicates(example):\n",
        "    hash_tuple = tuple(example['minhash'])  # Convert list to tuple for hashability\n",
        "    if hash_tuple in unique_hashes:\n",
        "        return False\n",
        "    unique_hashes.add(hash_tuple)\n",
        "    return True\n",
        "\n",
        "# Apply filter to remove duplicates\n",
        "sql_minhash_deduplicated_dataset = processed_dataset.filter(filter_duplicates)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "9WUObaQ9CPIJ",
        "outputId": "54894900-3efc-4222-f1ac-84e74c6746e7"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "Dataset({\n",
              "    features: ['id', 'domain', 'domain_description', 'sql_complexity', 'sql_complexity_description', 'sql_task_type', 'sql_task_type_description', 'sql_prompt', 'sql_context', 'sql', 'sql_explanation', 'minhash'],\n",
              "    num_rows: 99262\n",
              "})"
            ]
          },
          "execution_count": 76,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "len(sql_dataset), len(sql_dataset_hashlib_deduped), len(sql_minhash_deduplicated_dataset)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "oDmrm7wBCPFy",
        "outputId": "7a0c9368-3687-4dd4-f895-5f2cf14ed50a"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "(99271, 99269, 99262)"
            ]
          },
          "execution_count": 77,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "len(deduplicated_pandas), len(sql_dataset_hashlib_deduped), len(sql_minhash_deduplicated_dataset)"
      ]
    }
  ],
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.10.13"
    },
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "00c9f6a4ab564650a1eedcb21fd07973": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_1f6a731751f6458b849a114946ab3c5b",
              "IPY_MODEL_652984b44da146e8916a7c16a2753145",
              "IPY_MODEL_6f550686573e4ac2bb26fa97e286eeb1"
            ],
            "layout": "IPY_MODEL_e99e791a88f844b3a44478dcc8382ea5"
          }
        },
        "0116d2e5a7074c14a4ddf2cfc9c250dd": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "01eac22230884d7b9172f046af4c5574": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "036d429e59034c618730cceb21b350d7": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "04894734503b4bbf938fa78994682d05": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "056afd00bd57489184a46bd8ff6a5492": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "06ca0c7316f944059f587b69884c8755": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "07b273a6ad424763a86940307197443c": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_0a213893e98940da9af29caf199a675e",
            "placeholder": "​",
            "style": "IPY_MODEL_01eac22230884d7b9172f046af4c5574",
            "value": "Filter: 100%"
          }
        },
        "07cfd010933b493d813bd301ff110602": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_0e60c16ed79f46a5b91791483ead781d",
            "placeholder": "​",
            "style": "IPY_MODEL_8a613a12e02e46e1b7b77193b99bd0ab",
            "value": "Generating test split: 100%"
          }
        },
        "09b22ddfc96748fbbfe58df4f32dba8c": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_f61fc93c180844c082ab520a38f67576",
            "max": 1234829,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_4c09f1c7f37e4d998350b8ea3709b22b",
            "value": 1234829
          }
        },
        "09e4b5a7d0b54f3b83afafe4b621fe8b": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "0a213893e98940da9af29caf199a675e": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "0a28856a08b5495495bb986077f1a80c": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "0a69f87f8e874e18b046bb8be0ea163f": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "0e60c16ed79f46a5b91791483ead781d": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "0eaee47c4f4648af9d28cae9ad05c08a": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "0f380f19a66547e68028782905553aaa": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "10a40c39be134d999547fb46e2323369": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_d5de8ffded7640bca29a2cbc698933eb",
              "IPY_MODEL_ac5159fcdd894a23990739bf49f87f14",
              "IPY_MODEL_58557a52527b414780a2d7215134c8cd"
            ],
            "layout": "IPY_MODEL_2078cc5c47594c9abe858e3d28810a01"
          }
        },
        "10d6548158c34976ad3a073eaa45e313": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "12404c45f9a245eab875159c2ee7faf1": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "154375f3720c4c738eb63df2d866babb": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_3b1db75916984a78b7996d2d961d918d",
            "placeholder": "​",
            "style": "IPY_MODEL_871e23eda3fe412194bd179918d109f0",
            "value": " 5851/5851 [00:00&lt;00:00, 71300.16 examples/s]"
          }
        },
        "1604eca9a054468d9223c12d9c58e97c": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_fdac3c75b7d64e7c90dada10e3d2f151",
            "max": 18585438,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_f8de930d989343efb5dd5828907aba30",
            "value": 18585438
          }
        },
        "1aa44f998c10466fbfd8d92f57c7c9f8": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "1b57c80b67c94bff9a1bdb351b1e62a5": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_b966cd4309f44d18a17243a0eaec9e5f",
              "IPY_MODEL_885ec10110454d8ca284f8dc2d23eb98",
              "IPY_MODEL_8916b086d9b847e4bc291501fef4798b"
            ],
            "layout": "IPY_MODEL_d6c1a24d0a0d45e0b6c63724a4912b82"
          }
        },
        "1c30e0413a834a719611873cedbd69a7": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "1c79078a38f4464fad772a0d61045499": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "1d0c77377e8a43d9aa9e110e1b606a73": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_b74f1922c91f4410ba884402d26f168e",
            "placeholder": "​",
            "style": "IPY_MODEL_31447c2314044d5aa20aba087ea836ed",
            "value": " 1.23M/1.23M [00:00&lt;00:00, 4.97MB/s]"
          }
        },
        "1ed2958bb12b477893be3f941f38474b": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_49299bf7926a4cc9b7f7e1f712bb3b32",
            "placeholder": "​",
            "style": "IPY_MODEL_47e189e9772944eb90b674065a53b8e5",
            "value": "Downloading data: 100%"
          }
        },
        "1f45f19587154ec2adbeb3904c38d745": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "1f6a731751f6458b849a114946ab3c5b": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_1c30e0413a834a719611873cedbd69a7",
            "placeholder": "​",
            "style": "IPY_MODEL_25e5bbd8d8fb4a6e9350fb66d5c8d897",
            "value": "Generating train split: 100%"
          }
        },
        "2078cc5c47594c9abe858e3d28810a01": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "22b29d9f95fc4537a72a2bb26164d032": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_1ed2958bb12b477893be3f941f38474b",
              "IPY_MODEL_09b22ddfc96748fbbfe58df4f32dba8c",
              "IPY_MODEL_1d0c77377e8a43d9aa9e110e1b606a73"
            ],
            "layout": "IPY_MODEL_c74b5561131840d68c3d9bb87522927a"
          }
        },
        "22d39eb4c9364ecf99137f5a038ea798": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_a0d4b68c2b3546dea3273f1a35efe680",
            "max": 7600,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_4683991f78424827a89cd97dfc4787b2",
            "value": 7600
          }
        },
        "231d033c8374482f86c6d565ca99cf61": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "24a4e4d941a649908f7a364bfcec8813": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_95cadc78caed4e5382336278bdcd3add",
            "max": 8179,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_28bdca0fc31b4580b90054c9588bffb4",
            "value": 8179
          }
        },
        "24ad34844fc046758c5b7fc1d64b506b": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "25e5bbd8d8fb4a6e9350fb66d5c8d897": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "26203fd418474bf3b84045a94cb009f1": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "26c23fbe7e804e5ea8b149f5b01427ef": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "2837bca50ab54ddb83b9de69e649acb8": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "28bdca0fc31b4580b90054c9588bffb4": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "2cb7f3b5dbe74a0daed5b668634bfe1c": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_cf799abebbce4c8b813e8d1f1f790345",
            "max": 100000,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_74896dbb57ec4de8a694c795a5accf64",
            "value": 100000
          }
        },
        "2fa1f5114ee44d45bf0f9bb23e5784cc": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "31447c2314044d5aa20aba087ea836ed": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "35d93cde461c40168e9a9e69a922a557": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "390cf4f4d6814fa1bf3d782a217776de": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_06ca0c7316f944059f587b69884c8755",
            "placeholder": "​",
            "style": "IPY_MODEL_ee1ee8d4484e4fd4af21d18d218b7bda",
            "value": " 32.4M/32.4M [00:00&lt;00:00, 63.1MB/s]"
          }
        },
        "3b1db75916984a78b7996d2d961d918d": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "3bb05bf4b95445e09b607030101b3256": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "3c92ce43cd674bd489e1521ffa9429f3": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "3cd31dae5cfd4e18b6bb8d16c37b6a2f": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "3cfdd30355434fdc8f9c46d184c6fd4a": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "3ffffaeaa57741ef812ae0c7089781bb": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_f3d634f66ebc470cb1b618671f98c634",
              "IPY_MODEL_4243ea64321a41768a37af6b6a9066ff",
              "IPY_MODEL_544deb1ffc1e40738bd78c8cceb82071"
            ],
            "layout": "IPY_MODEL_4811b34aefde46a89c7f5c5a09dd4ea2"
          }
        },
        "4243ea64321a41768a37af6b6a9066ff": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_7e881af07d4b427daa70858d12568d6a",
            "max": 100000,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_09e4b5a7d0b54f3b83afafe4b621fe8b",
            "value": 100000
          }
        },
        "4389b5b2c6384ee1a770c0483b29824d": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_86b12291302041e5959953b088d1fc3d",
              "IPY_MODEL_721a2eb9fd9e4c7bb1e88e414d86e041",
              "IPY_MODEL_b3024e2c601549be8d5d3be288ef2a40"
            ],
            "layout": "IPY_MODEL_d9ff34467c3c481fbfe2d3431e841a7b"
          }
        },
        "44778eeba6a74e72916f5be84e83c138": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_07cfd010933b493d813bd301ff110602",
              "IPY_MODEL_52e8c84b3c8b4898b8dc16fc64be8982",
              "IPY_MODEL_154375f3720c4c738eb63df2d866babb"
            ],
            "layout": "IPY_MODEL_0a28856a08b5495495bb986077f1a80c"
          }
        },
        "4683991f78424827a89cd97dfc4787b2": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "47e189e9772944eb90b674065a53b8e5": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "4811b34aefde46a89c7f5c5a09dd4ea2": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "48b078b82e8e46648bbca0c81f3c7bbe": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "49299bf7926a4cc9b7f7e1f712bb3b32": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "49a1ee63461a4b7ab1da64af98919fab": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "4a794127bc5541df829c47ac3a3f76a1": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_9a5064b397b247459be56b85548985b9",
              "IPY_MODEL_22d39eb4c9364ecf99137f5a038ea798",
              "IPY_MODEL_6780a7d344d94769a3646808c5820f18"
            ],
            "layout": "IPY_MODEL_8efe3ed02cf849828a4aa1cef1ee36f2"
          }
        },
        "4c09f1c7f37e4d998350b8ea3709b22b": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "50de3541f27b422992e611c9809bff47": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_54b04ee727154934a9878acc024e1659",
            "max": 100000,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_3cfdd30355434fdc8f9c46d184c6fd4a",
            "value": 100000
          }
        },
        "5175cad8f676488a8af6cbc184e7653a": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "5266a96363a345768a9c60348f55ba64": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_caf6686e525c4f5c95f5007db8066bc2",
            "max": 120000,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_e41c2847cd7942a0b5ce70f06d41917f",
            "value": 120000
          }
        },
        "52e8c84b3c8b4898b8dc16fc64be8982": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_e92110caa68b417cbcf13590d23fb7de",
            "max": 5851,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_a147011ce029477f8223838837cd5ccd",
            "value": 5851
          }
        },
        "544deb1ffc1e40738bd78c8cceb82071": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_881c884690774c7ba93a3b5b2b9ef659",
            "placeholder": "​",
            "style": "IPY_MODEL_bd2d0f35fabf47ab8ef3faf82e0e64d3",
            "value": " 100000/100000 [00:11&lt;00:00, 9654.26 examples/s]"
          }
        },
        "54b04ee727154934a9878acc024e1659": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "58557a52527b414780a2d7215134c8cd": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_606f732992a54428b31e55c0d5060850",
            "placeholder": "​",
            "style": "IPY_MODEL_3c92ce43cd674bd489e1521ffa9429f3",
            "value": " 1.90M/1.90M [00:00&lt;00:00, 9.85MB/s]"
          }
        },
        "5aaed50c3b17479eb2b9db014a1299c2": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_85e9404564b241e0933b2cd93bc4b70a",
              "IPY_MODEL_5266a96363a345768a9c60348f55ba64",
              "IPY_MODEL_c1d4a1ce3b1841b4afad35715df670d7"
            ],
            "layout": "IPY_MODEL_5ab4bbbb428f4388b78c086dc521345b"
          }
        },
        "5ab4bbbb428f4388b78c086dc521345b": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "5b4854c032f14710835c269a3c2ee01a": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_f4f6b7d49f9b4b28b5147b4e05f8b684",
              "IPY_MODEL_1604eca9a054468d9223c12d9c58e97c",
              "IPY_MODEL_9464375b801c47a7bb89a9f2c19c75c7"
            ],
            "layout": "IPY_MODEL_ee687fa7023a453d81f0dfc2bf30a330"
          }
        },
        "606f732992a54428b31e55c0d5060850": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "652984b44da146e8916a7c16a2753145": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_04894734503b4bbf938fa78994682d05",
            "max": 100000,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_2837bca50ab54ddb83b9de69e649acb8",
            "value": 100000
          }
        },
        "65f6904e5d2b46f68e1e55d41459f59a": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_dc9a256839174f9bab11593da9ff5301",
            "placeholder": "​",
            "style": "IPY_MODEL_231d033c8374482f86c6d565ca99cf61",
            "value": "Map (num_proc=4): 100%"
          }
        },
        "6780a7d344d94769a3646808c5820f18": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_679cff893cd94b72a090d50b3765af1d",
            "placeholder": "​",
            "style": "IPY_MODEL_3cd31dae5cfd4e18b6bb8d16c37b6a2f",
            "value": " 7600/7600 [00:00&lt;00:00, 147768.92 examples/s]"
          }
        },
        "679cff893cd94b72a090d50b3765af1d": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "693a9814cbbe4b859be0ae8b0922b61a": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_710a6789bd3e409485c2e260e111be07",
              "IPY_MODEL_9880f29d8b4340d1abb5388efeafbab4",
              "IPY_MODEL_390cf4f4d6814fa1bf3d782a217776de"
            ],
            "layout": "IPY_MODEL_10d6548158c34976ad3a073eaa45e313"
          }
        },
        "6ae7efc2e38c48abbe9962839a118ae2": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "6b94612a9c6642e69cdd76b0419ee422": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "6f550686573e4ac2bb26fa97e286eeb1": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_24ad34844fc046758c5b7fc1d64b506b",
            "placeholder": "​",
            "style": "IPY_MODEL_35d93cde461c40168e9a9e69a922a557",
            "value": " 100000/100000 [00:00&lt;00:00, 225538.65 examples/s]"
          }
        },
        "710a6789bd3e409485c2e260e111be07": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_a5a23a29b0fc4fdcadb745fae45f3a6d",
            "placeholder": "​",
            "style": "IPY_MODEL_26203fd418474bf3b84045a94cb009f1",
            "value": "Downloading data: 100%"
          }
        },
        "710b4cd8797d4aa6b1757cc8d979dd4e": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "721a2eb9fd9e4c7bb1e88e414d86e041": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_a08a116a0cdf4cf6954db9e830785135",
            "max": 100000,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_1f45f19587154ec2adbeb3904c38d745",
            "value": 100000
          }
        },
        "74896dbb57ec4de8a694c795a5accf64": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "7560bdfa45d348f487a5d2fe0b890fc4": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "7b01c8eb93cb47ff848d331103581cb1": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "7be9030c35324cf1828bb68f74e08646": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_9ee8ba0e646e44338efdf30b1d778c96",
              "IPY_MODEL_24a4e4d941a649908f7a364bfcec8813",
              "IPY_MODEL_ec68e94aeee2494ebb6ad22b10727641"
            ],
            "layout": "IPY_MODEL_7b01c8eb93cb47ff848d331103581cb1"
          }
        },
        "7e881af07d4b427daa70858d12568d6a": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "851459ca207143b1b85fa8ad39f944b3": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "85e9404564b241e0933b2cd93bc4b70a": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_7560bdfa45d348f487a5d2fe0b890fc4",
            "placeholder": "​",
            "style": "IPY_MODEL_5175cad8f676488a8af6cbc184e7653a",
            "value": "Generating train split: 100%"
          }
        },
        "86b12291302041e5959953b088d1fc3d": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_a3754e7a70b34cc496637b0fb45cf1c9",
            "placeholder": "​",
            "style": "IPY_MODEL_b6a4235e2963459f8f57e6ffbdb584da",
            "value": "Map (num_proc=4): 100%"
          }
        },
        "871e23eda3fe412194bd179918d109f0": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "881c884690774c7ba93a3b5b2b9ef659": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "885ec10110454d8ca284f8dc2d23eb98": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d46d7ebd6b834df7ab959a50baa1a1d3",
            "max": 8070,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_6ae7efc2e38c48abbe9962839a118ae2",
            "value": 8070
          }
        },
        "88dca456c8974c9aafc1da8aa7b199ef": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "8916b086d9b847e4bc291501fef4798b": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_cb9a190141054b9aa1ca37e046e22b1b",
            "placeholder": "​",
            "style": "IPY_MODEL_bcdb78b008f34038b852096949ff0f86",
            "value": " 8.07k/8.07k [00:00&lt;00:00, 8.03kB/s]"
          }
        },
        "8a613a12e02e46e1b7b77193b99bd0ab": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "8d344315f6f849d29c041299fca9bf5d": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_65f6904e5d2b46f68e1e55d41459f59a",
              "IPY_MODEL_50de3541f27b422992e611c9809bff47",
              "IPY_MODEL_ad5a85a6d4274f4485001c6ba8c4856b"
            ],
            "layout": "IPY_MODEL_facd1b7c40544282b409e37bda3cbcef"
          }
        },
        "8efe3ed02cf849828a4aa1cef1ee36f2": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "9464375b801c47a7bb89a9f2c19c75c7": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_dde644724f684e628e2994cf83ca23b3",
            "placeholder": "​",
            "style": "IPY_MODEL_946f0b56e27c4f89aa9ff3f125178486",
            "value": " 18.6M/18.6M [00:00&lt;00:00, 24.1MB/s]"
          }
        },
        "946f0b56e27c4f89aa9ff3f125178486": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "95cadc78caed4e5382336278bdcd3add": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "975109fc01704aa0822be74a370881b7": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_c76368b5718745868e6fdac855bd5bca",
            "placeholder": "​",
            "style": "IPY_MODEL_e39b483e4ac944fabc05182b097f54d9",
            "value": " 100000/100000 [00:03&lt;00:00, 44286.94 examples/s]"
          }
        },
        "9880f29d8b4340d1abb5388efeafbab4": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d6e8d459080f4206bcad31a6d4b81f0c",
            "max": 32363736,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_056afd00bd57489184a46bd8ff6a5492",
            "value": 32363736
          }
        },
        "9a5064b397b247459be56b85548985b9": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_0f380f19a66547e68028782905553aaa",
            "placeholder": "​",
            "style": "IPY_MODEL_6b94612a9c6642e69cdd76b0419ee422",
            "value": "Generating test split: 100%"
          }
        },
        "9ee8ba0e646e44338efdf30b1d778c96": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_2fa1f5114ee44d45bf0f9bb23e5784cc",
            "placeholder": "​",
            "style": "IPY_MODEL_851459ca207143b1b85fa8ad39f944b3",
            "value": "Downloading readme: 100%"
          }
        },
        "a08a116a0cdf4cf6954db9e830785135": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a0d4b68c2b3546dea3273f1a35efe680": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a147011ce029477f8223838837cd5ccd": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "a3754e7a70b34cc496637b0fb45cf1c9": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a5a23a29b0fc4fdcadb745fae45f3a6d": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "ac5159fcdd894a23990739bf49f87f14": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_3bb05bf4b95445e09b607030101b3256",
            "max": 1901018,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_036d429e59034c618730cceb21b350d7",
            "value": 1901018
          }
        },
        "ad5a85a6d4274f4485001c6ba8c4856b": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_710b4cd8797d4aa6b1757cc8d979dd4e",
            "placeholder": "​",
            "style": "IPY_MODEL_1aa44f998c10466fbfd8d92f57c7c9f8",
            "value": " 100000/100000 [00:21&lt;00:00, 3445.65 examples/s]"
          }
        },
        "b3024e2c601549be8d5d3be288ef2a40": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_c4bc9e2264a4468c802aba5c5fb6d4f7",
            "placeholder": "​",
            "style": "IPY_MODEL_d218ffe341d045579f730d64e39d1d5f",
            "value": " 100000/100000 [03:56&lt;00:00, 317.37 examples/s]"
          }
        },
        "b6a4235e2963459f8f57e6ffbdb584da": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "b74f1922c91f4410ba884402d26f168e": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b966cd4309f44d18a17243a0eaec9e5f": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d226e2bd05304b269ca4fc33e28d2984",
            "placeholder": "​",
            "style": "IPY_MODEL_48b078b82e8e46648bbca0c81f3c7bbe",
            "value": "Downloading readme: 100%"
          }
        },
        "bcdb78b008f34038b852096949ff0f86": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "bd2d0f35fabf47ab8ef3faf82e0e64d3": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "c1d4a1ce3b1841b4afad35715df670d7": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_f90d0bc8a3ad42e89e57a86396cdad81",
            "placeholder": "​",
            "style": "IPY_MODEL_fd7395f55b564992a3d69637e9a300af",
            "value": " 120000/120000 [00:00&lt;00:00, 441693.98 examples/s]"
          }
        },
        "c4bc9e2264a4468c802aba5c5fb6d4f7": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "c74b5561131840d68c3d9bb87522927a": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "c76368b5718745868e6fdac855bd5bca": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "caf6686e525c4f5c95f5007db8066bc2": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "cb9a190141054b9aa1ca37e046e22b1b": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "cf799abebbce4c8b813e8d1f1f790345": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "d218ffe341d045579f730d64e39d1d5f": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "d226e2bd05304b269ca4fc33e28d2984": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "d46d7ebd6b834df7ab959a50baa1a1d3": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "d5de8ffded7640bca29a2cbc698933eb": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_12404c45f9a245eab875159c2ee7faf1",
            "placeholder": "​",
            "style": "IPY_MODEL_fb3c4043f3aa44ac88ec962b23e51a83",
            "value": "Downloading data: 100%"
          }
        },
        "d6c1a24d0a0d45e0b6c63724a4912b82": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "d6e8d459080f4206bcad31a6d4b81f0c": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "d9ff34467c3c481fbfe2d3431e841a7b": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "dc9a256839174f9bab11593da9ff5301": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "dde644724f684e628e2994cf83ca23b3": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "e1b408f3f4c74fbd8f70d7d44c37ccce": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_07b273a6ad424763a86940307197443c",
              "IPY_MODEL_2cb7f3b5dbe74a0daed5b668634bfe1c",
              "IPY_MODEL_975109fc01704aa0822be74a370881b7"
            ],
            "layout": "IPY_MODEL_0116d2e5a7074c14a4ddf2cfc9c250dd"
          }
        },
        "e39b483e4ac944fabc05182b097f54d9": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "e41c2847cd7942a0b5ce70f06d41917f": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "e92110caa68b417cbcf13590d23fb7de": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "e99e791a88f844b3a44478dcc8382ea5": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "ec68e94aeee2494ebb6ad22b10727641": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_0eaee47c4f4648af9d28cae9ad05c08a",
            "placeholder": "​",
            "style": "IPY_MODEL_1c79078a38f4464fad772a0d61045499",
            "value": " 8.18k/8.18k [00:00&lt;00:00, 429kB/s]"
          }
        },
        "ee1ee8d4484e4fd4af21d18d218b7bda": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "ee687fa7023a453d81f0dfc2bf30a330": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "f3d634f66ebc470cb1b618671f98c634": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_88dca456c8974c9aafc1da8aa7b199ef",
            "placeholder": "​",
            "style": "IPY_MODEL_0a69f87f8e874e18b046bb8be0ea163f",
            "value": "Filter: 100%"
          }
        },
        "f4f6b7d49f9b4b28b5147b4e05f8b684": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_26c23fbe7e804e5ea8b149f5b01427ef",
            "placeholder": "​",
            "style": "IPY_MODEL_49a1ee63461a4b7ab1da64af98919fab",
            "value": "Downloading data: 100%"
          }
        },
        "f61fc93c180844c082ab520a38f67576": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "f8de930d989343efb5dd5828907aba30": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "f90d0bc8a3ad42e89e57a86396cdad81": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "facd1b7c40544282b409e37bda3cbcef": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "fb3c4043f3aa44ac88ec962b23e51a83": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "fd7395f55b564992a3d69637e9a300af": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "fdac3c75b7d64e7c90dada10e3d2f151": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        }
      }
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}
